// SPDX-License-Identifier: AGPL-3.0-only
// Copyright 2026-present the Unsloth AI Inc. team. All rights reserved. See /studio/LICENSE.AGPL-3.0

import type { DeepPartialMessageTree } from "../types";
import type { en } from "./en";

export const hi = {
  picker: {
    onDevice: "डिवाइस पर",
    huggingFace: "Hugging Face",
    retry: "पुनः प्रयास करें",
    loadMore: "और लोड करें",
    offlineTitle: "आप ऑफ़लाइन हैं",
    offlineBody:
      "कैश किए गए या स्थानीय {noun} का उपयोग करने के लिए डिवाइस पर जाएं।",
    offlineSwitchDevice: "डिवाइस",
    searchAriaLabel: "{noun} खोजें",
    modelSourceAriaLabel: "मॉडल स्रोत",
    hubSectionAriaLabel: "Hub सेक्शन",
    modelDropped: "अब उपलब्ध नहीं",
    modelDroppedByProvider: "{provider} · अब उपलब्ध नहीं",
    modelDisabled: "सक्षम नहीं",
    modelDisabledByProvider: "{provider} · सक्षम नहीं",
    multipleMatches:
      "एक से अधिक मेल खाते {noun} मिले। सूची में से एक चुनें।",
    rateLimitedTitle: "Hugging Face की अनुरोध सीमा पूरी हो गई",
    rateLimitedBody:
      "कुछ देर प्रतीक्षा करें, फिर {noun} की खोज दोबारा करें।",
    hfToken: {
      label: "HF टोकन",
      saved: "सहेजा गया",
      add: "जोड़ें",
      savedAriaLabel: "Hugging Face टोकन सहेजा गया",
      addAriaLabel: "Hugging Face टोकन सेट करें",
      savedHint:
        "टोकन सहेजा गया। इसका उपयोग करने पर एक्सेस की जांच की जाएगी।",
      addHint:
        "निजी और गेटेड रिपॉज़िटरी एक्सेस करने के लिए टोकन सेट करें।",
    },
  },
  common: {
    cancel: "रद्द करें",
    close: "बंद करें",
    delete: "हटाएँ",
    done: "पूर्ण",
    error: "त्रुटि",
    export: "एक्सपोर्ट करें",
    help: "सहायता",
    loading: "लोड हो रहा है...",
    new: "नया",
    rename: "नाम बदलें",
    save: "सहेजें",
    saving: "सहेजा जा रहा है...",
    search: "खोजें",
    shutdown: "शटडाउन",
  },
  shell: {
    beta: "BETA",
    brand: "unsloth",
    product: "Unsloth",
    accountMenu: "{name} का खाता मेनू",
    updateAvailable: "अपडेट उपलब्ध है",
    resize: {
      collapse: "छोटा करने के लिए क्लिक करें",
      expand: "विस्तार के लिए क्लिक करें",
      drag: "आकार बदलने के लिए खींचें",
    },
    aria: {
      home: "Unsloth होम",
      closeSidebar: "साइडबार बंद करें",
      openSidebar: "साइडबार खोलें",
      resizeSidebar: "साइडबार का आकार बदलें या छोटा करें",
      resizeRunSettings: "रन सेटिंग्स का आकार बदलें या बंद करें",
      openRunSettings: "रन सेटिंग्स खोलें",
      chatOptions: "चैट विकल्प",
      runOptions: "रन विकल्प",
    },
    navigation: {
      newChat: "नई चैट",
      returnToChat: "चैट पर लौटें",
      returnToChats: "{count} चैट पर लौटें",
      chatGenerating: "जनरेट हो रहा है",
      compare: "तुलना करें",
      search: "खोजें",
      hub: "मॉडल हब",
      projects: "प्रोजेक्ट",
      train: "ट्रेनिंग",
      recipes: "रेसिपी",
      images: "इमेज",
      video: "वीडियो",
      audio: "ऑडियो",
      trainChecking: "इस मशीन पर ट्रेनिंग सपोर्ट की जाँच हो रही है...",
      videoChecking: "इस मशीन पर वीडियो सपोर्ट की जाँच हो रही है...",
      more: "अधिक",
      customizeSidebar: "साइडबार कस्टमाइज़ करें",
      newBadge: "नया",
      export: "एक्सपोर्ट",
      recents: "हाल के",
      noChatsYet: "अभी तक कोई चैट नहीं",
      settings: "सेटिंग्स",
      api: "API",
      lightMode: "लाइट मोड",
      darkMode: "डार्क मोड",
      guidedTour: "गाइडेड टूर",
      help: "सहायता",
      logOut: "लॉग आउट",
      shutdown: "शटडाउन",
    },
    notFound: {
      title: "पेज नहीं मिला",
      description: "{path} मौजूद नहीं है।",
      backToChat: "चैट पर वापस जाएँ",
    },
    dialog: {
      deleteChat: {
        title: "चैट हटाएँ",
        description: 'क्या आप वाकई इस चैट "{name}" को हटाना चाहते हैं?',
      },
      deleteRun: {
        title: "ट्रेनिंग रन हटाएँ",
        description: 'क्या आप वाकई इस रन "{name}" को हटाना चाहते हैं?',
      },
      renameChat: {
        title: "चैट का नाम बदलें",
        placeholder: "चैट शीर्षक",
      },
      renameRun: {
        title: "रन का नाम बदलें",
        placeholder: "रन का नाम",
      },
    },
    toast: {
      cannotDeleteRunningRun: "जारी ट्रेनिंग रन को हटाया नहीं जा सकता",
      failedToDeleteChat: "चैट हटाने में विफल",
      failedToDeleteRun: "रन हटाने में विफल",
      failedToRenameChat: "चैट का नाम बदलने में विफल",
      failedToRenameRun: "रन का नाम बदलने में विफल",
    },
  },
  settings: {
    title: "सेटिंग्स",
    dialog: {
      title: "सेटिंग्स",
      description: "अपनी Unsloth प्राथमिकताएँ प्रबंधित करें।",
      closeAriaLabel: "सेटिंग्स बंद करें",
      searchPlaceholder: "सेटिंग्स खोजें…",
      searchNoResults: "कोई सेटिंग नहीं मिली।",
    },
    tabs: {
      general: "सामान्य",
      profile: "प्रोफ़ाइल",
      appearance: "रूप-रंग",
      resources: "सिस्टम",
      chat: "चैट",
      connections: "कनेक्शन",
      apiKeys: "API",
      about: "परिचय",
      data: "डेटा",
      agents: "एजेंट",
      debugging: "लॉग",
      voice: "आवाज़",
    },
    debugging: {
      logSection: "लॉग फ़ाइल",
      source: "लॉग फ़ाइल",
      sourceHint: "मॉडल रनर अपने अलग लॉग लिखते हैं, इसलिए लोड या जनरेशन विफल होने का कारण अक्सर सर्वर लॉग के बजाय वहीं मिलता है।",
      path: "स्थान",
      pathCopy: "पथ कॉपी करें",
      refreshSection: "रिफ़्रेश",
      mode: "मोड",
      modeLive: "लाइव",
      modeInterval: "हर 3 सेकंड",
      modeManual: "मैन्युअल",
      refreshNow: "अभी रिफ़्रेश करें",
      privacyNote: "इस दृश्य में क्रेडेंशियल छिपा दिए जाते हैं। डिस्क पर मौजूद फ़ाइल में वे नहीं छिपाए जाते।",
      copyVisible: "दिख रहा लॉग कॉपी करें",
      empty: "अभी तक कुछ भी लॉग नहीं हुआ है।",
      disabled: "फ़ाइल में लॉगिंग बंद है (UNSLOTH_STUDIO_NO_FILE_LOG=1)।",
      missing: "कोई लॉग फ़ाइल नहीं मिली।",
      unreadable: "लॉग फ़ाइल पढ़ी नहीं जा सकी।",
      timeout: "लॉग अनुरोध का समय समाप्त हो गया। सर्वर तक पहुंच नहीं हो पा रही है।",
      droppedNotice: "कुछ पंक्तियाँ छोड़ दी गईं: लॉग इतनी तेज़ी से लिखा गया कि उसे पढ़ा नहीं जा सका।",
      morePending: "और पंक्तियां अभी पढ़ी जा रही हैं; वे अगले रिफ्रेश पर आएंगी।",
      staleSession: "फ़ाइल लॉगिंग बंद है, इसलिए यह पुराना सत्र है और अपडेट नहीं होगा।",
      keywords: "डिबग डिबगिंग लॉग त्रुटि गड़बड़ी क्रैश ट्रेसबैक निदान समस्या निवारण debug log logs error",
    },
    voice: {
      title: "आवाज़",
      description: "माइक्रोफ़ोन, डिक्टेशन, स्पीच-टू-टेक्स्ट और ज़ोर से पढ़ना",
      dictation: {
        sectionTitle: "डिक्टेशन",
        engineLabel: "डिक्टेशन इंजन",
        engineBrowser: "ब्राउज़र",
        engineBrowserDescription:
          "आपके ब्राउज़र की स्पीच सेवा से ऑडियो को टेक्स्ट में बदलता है। STT मॉडल उपयोग करने के लिए 'लोकल ट्रांसक्रिप्शन' चुनें।",
        engineModel: "लोकल ट्रांसक्रिप्शन",
        engineModelDescription:
          "स्पीच-टू-टेक्स्ट (STT) मॉडल लोकली चलाता है और ऑफ़लाइन काम करता है। डाउनलोड करें, लोड करें; कुछ देर उपयोग न होने पर यह अनलोड हो जाता है।",
        sttModelLabel: "स्पीच रिकग्निशन मॉडल",
        sttModelDescription: "लोकली चलाने के लिए STT मॉडल चुनें या खोजें।",
        sttModelSearchPlaceholder: "मॉडल खोजें",
        sttModelSearching: "Hugging Face पर खोजा जा रहा है…",
        sttModelValidating: "Whisper संगतता जाँची जा रही है…",
        sttModelNoResults: "कोई Whisper मॉडल नहीं मिला",
        sttModelInvalid: "इस रिपॉज़िटरी का उपयोग डिक्टेशन के लिए नहीं किया जा सकता",
        sttModelFailed: "STT मॉडल लोड नहीं हो सका",
        sttModelUnsupported: "इस ब्राउज़र में रिकॉर्डिंग समर्थित नहीं है",
        sttChecking: "जाँच की जा रही है…",
        sttOnDemand: "डाउनलोड हो चुका है",
        sttLoadingModel: "मॉडल लोड हो रहा है…",
        sttReady: "{device} पर लोड है",
        sttLoaded: "लोड है",
        sttUnavailable:
          "इस सर्वर पर इंस्टॉल नहीं है। लोकल डिक्टेशन चालू करने के लिए `unsloth studio update` चलाएँ।",
        sttRetry: "फिर कोशिश करें",
        sttDownloadChecking: "डाउनलोड स्थिति जाँची जा रही है…",
        sttNotDownloaded: "डाउनलोड नहीं हुआ",
        sttDownloadStatusFailed: "डाउनलोड स्थिति जाँची नहीं जा सकी",
        sttDownload: "डाउनलोड करें",
        sttDownloadConfirmTitle: "{model} डाउनलोड करें?",
        sttDownloadConfirmBody:
          "लोकल डिक्टेशन पूरी तरह ऑफ़लाइन चलता है, लेकिन इसके लिए पहले {model} स्पीच मॉडल चाहिए। यह लगभग {size} का है और आपके Hugging Face कैश में एक ही बार डाउनलोड होता है।",
        sttDownloadConfirmBodyUnsized:
          "लोकल डिक्टेशन पूरी तरह ऑफ़लाइन चलता है, लेकिन इसके लिए पहले {model} स्पीच मॉडल चाहिए। यह आपके Hugging Face कैश में एक ही बार डाउनलोड होता है।",
        sttOpenVoiceSettings: "आवाज़ सेटिंग्स खोलें",
        sttDownloadStarted: "{model} डाउनलोड हो रहा है",
        sttDownloading: "डाउनलोड हो रहा है… {progress}%",
        sttCancelDownload: "रद्द करें",
        sttCancellingDownload: "रद्द हो रहा है…",
        sttCancelDownloadFailed: "डाउनलोड रद्द नहीं किया जा सका",
        sttDownloadComplete: "स्पीच रिकग्निशन मॉडल डाउनलोड हो गया",
        sttModelReady: "{model} डिक्टेशन के लिए तैयार है",
        sttRecommended: "अनुशंसित",
        sttDownloadFailed: "स्पीच रिकग्निशन मॉडल डाउनलोड नहीं हो सका",
        sttLoad: "लोड करें",
        sttUnload: "अनलोड करें",
        sttUnloading: "अनलोड हो रहा है…",
        microphoneLabel: "माइक्रोफ़ोन",
        microphoneFallbackName: "माइक्रोफ़ोन {index}",
        microphoneDescription: "डिक्टेशन के लिए उपयोग होता है",
        microphoneFallbackHint:
          "डिक्टेशन के लिए उपयोग होता है। यदि ब्राउज़र का स्पीच इंजन इस डिवाइस का उपयोग न कर पाए, तो सिस्टम का डिफ़ॉल्ट माइक्रोफ़ोन उपयोग किया जाता है।",
        microphoneGrantDescription:
          "डिवाइस के नाम दिखाने के लिए माइक्रोफ़ोन की अनुमति दें",
        allowMicrophone: "माइक्रोफ़ोन की अनुमति दें",
        micAccessBlocked:
          "माइक्रोफ़ोन एक्सेस रोक दिया गया है। इस Unsloth पेज के लिए माइक्रोफ़ोन एक्सेस की अनुमति दें, फिर दोबारा कोशिश करें।",
        micAccessUnsupported:
          "इस ब्राउज़र या संदर्भ में माइक्रोफ़ोन एक्सेस समर्थित नहीं है।",
        systemDefault: "सिस्टम डिफ़ॉल्ट",
        savedMicDisconnected: "सहेजा गया माइक्रोफ़ोन (कनेक्ट नहीं है)",
        languageLabel: "डिक्टेशन की भाषा",
        languageDescription: "पहचानी जाने वाली भाषा",
        languageAuto: "स्वतः (ब्राउज़र की भाषा)",
      },
      dictionary: {
        sectionTitle: "डिक्टेशन शब्दकोश",
        sectionDescription:
          "तय करें कि डिक्टेशन कुछ खास शब्द या वाक्यांश कैसे लिखे",
        manageLabel: "कस्टम वर्तनी",
        manage: "प्रबंधित करें",
        backToVoice: "आवाज़ पर वापस जाएँ",
        addEntry: "प्रविष्टि जोड़ें",
        newEntryAria: "नई शब्दकोश प्रविष्टि",
        entryPlaceholder: "रिया शर्मा",
        entryAria: "शब्दकोश की प्रविष्टि {index}",
        removeEntryAria: "शब्दकोश की प्रविष्टि {index} हटाएँ",
      },
      recents: {
        sectionTitle: "डिक्टेशन इतिहास",
        sectionDescription:
          "हर डिक्टेशन यहाँ सहेजा जाता है ताकि आप टेक्स्ट वापस पा सकें",
        manageLabel: "डिक्टेशन इतिहास",
        manage: "प्रबंधित करें",
        pageDescription:
          "हर डिक्टेशन सहेजा जाता है। आप उसे देख, कॉपी या हटा सकते हैं, या वह चैट खोल सकते हैं जिसमें उसका उपयोग हुआ था।",
        searchPlaceholder: "डिक्टेशन खोजें",
        sortLabel: "डिक्टेशन क्रमबद्ध करें",
        sortNewest: "नए पहले",
        sortOldest: "पुराने पहले",
        sortAlpha: "A से Z",
        noMatches: "आपकी खोज से मेल खाता कोई डिक्टेशन नहीं मिला",
        detailTitle: "सहेजा गया डिक्टेशन",
        backToVoice: "आवाज़ पर वापस जाएँ",
        backToRecents: "हाल के डिक्टेशन पर वापस जाएँ",
        view: "पूरा डिक्टेशन देखें",
        empty: "अभी तक कोई डिक्टेशन नहीं",
        dictationColumn: "डिक्टेशन",
        dateColumn: "निर्माण तिथि",
        copy: "डिक्टेशन कॉपी करें",
        copied: "क्लिपबोर्ड पर कॉपी हो गया",
        copyFailed: "क्लिपबोर्ड पर कॉपी नहीं हो सका",
        delete: "डिक्टेशन हटाएँ",
        deleteTitle: "डिक्टेशन हटाएँ",
        deleteDescription:
          "यह सहेजा गया डिक्टेशन हटाएँ? इसे पूर्ववत नहीं किया जा सकता।",
        deleteLinkedDescription:
          "यह सहेजा गया डिक्टेशन हटाएँ? आप वह चैट भी हटा सकते हैं जिसमें इसका उपयोग हुआ था। इसे पूर्ववत नहीं किया जा सकता।",
        deleteWithChat: "चैट और डिक्टेशन हटाएँ",
        deleteWithChatFailed: "चैट नहीं हटाई जा सकी",
        clear: "इतिहास साफ़ करें",
        clearTitle: "डिक्टेशन इतिहास साफ़ करें",
        clearDescription:
          "सभी सहेजे गए डिक्टेशन हटाएँ? इसे पूर्ववत नहीं किया जा सकता।",
        clearConfirm: "सब साफ़ करें",
        showMore: "और दिखाएँ ({count})",
        openChat: "चैट खोलें",
      },
      readAloud: {
        sectionTitle: "ज़ोर से पढ़ना",
        buttonLabel: "ज़ोर से पढ़ने का बटन",
        buttonDescription: "असिस्टेंट के जवाबों पर दिखाएँ",
        engineLabel: "TTS इंजन",
        engineSystemDescription: "डिवाइस की अंतर्निहित आवाज़ें",
        engineStudioDescription:
          "लोड किए गए ऑडियो मॉडल का उपयोग करता है (जैसे Orpheus)",
        engineSystem: "सिस्टम की आवाज़ें",
        engineStudio: "TTS मॉडल लोड करें",
        modelLabel: "TTS मॉडल",
        modelDescription:
          "मॉडल सिलेक्टर से एक ऑडियो मॉडल लोड करें (जैसे Orpheus TTS)",
        voiceLabel: "आवाज़",
        voiceDescription: "इस डिवाइस पर सबसे अच्छी आवाज़ें",
        speedLabel: "गति",
        pitchLabel: "पिच",
        volumeLabel: "वॉल्यूम",
        previewLabel: "आवाज़ का पूर्वावलोकन",
        previewDescription: "एक छोटा नमूना चलाएँ",
        previewFailed: "TTS पूर्वावलोकन विफल रहा",
        previewAction: "सुनें",
        stopAction: "रोकें",
        ttsLabel: "टेक्स्ट-टू-स्पीच",
        notSupported: "इस ब्राउज़र में समर्थित नहीं है",
      },
    },
    general: {
      title: "सामान्य",
      description: "Unsloth के लिए वैश्विक प्राथमिकताएं।",
      account: "खाता",
      huggingFaceToken: "Hugging Face टोकन",
      huggingFaceTokenDescription:
        "गेटेड मॉडल लोड करने और आर्टिफैक्ट पुश करने के लिए उपयोग किया जाता है।",
      hideToken: "टोकन छिपाएं",
      showToken: "टोकन दिखाएं",
      clearToken: "साफ़ करें",
      checkingToken: "टोकन की जाँच हो रही है...",
      tokenValidated: "टोकन सत्यापित है",
      password: "पासवर्ड",
      passwordDescription: "इस Unsloth खाते के लिए पासवर्ड बदलें।",
      passwordDialog: {
        trigger: "पासवर्ड बदलें",
        title: "पासवर्ड बदलें",
        description:
          "अपना वर्तमान पासवर्ड दर्ज करें और एक नया चुनें (कम से कम {minLength} अक्षर)।",
        setTrigger: "रिमोट पासवर्ड सेट करें",
        setTitle: "रिमोट पासवर्ड सेट करें",
        setDescription:
          "वह पासवर्ड चुनें जिससे रिमोट ब्राउज़र unsloth के रूप में साइन इन करते हैं (कम से कम {minLength} अक्षर)। Unsloth डेस्कटॉप ऐप स्वतः साइन इन करता रहेगा।",
        setSubmit: "पासवर्ड सेट करें",
        setting: "सेट हो रहा है...",
        setDone: "पासवर्ड सेट हो गया।",
        currentPassword: "वर्तमान पासवर्ड",
        newPassword: "नया पासवर्ड",
        confirmPassword: "नए पासवर्ड की पुष्टि करें",
        currentTooShort:
          "वर्तमान पासवर्ड कम से कम {minLength} अक्षरों का होना चाहिए।",
        newTooShort: "नया पासवर्ड कम से कम {minLength} अक्षरों का होना चाहिए।",
        mismatch: "पासवर्ड मेल नहीं खाते।",
        samePassword:
          "नया पासवर्ड आपके वर्तमान पासवर्ड से अलग होना चाहिए।",
        update: "पासवर्ड अपडेट करें",
        updating: "अपडेट हो रहा है...",
        updated: "पासवर्ड अपडेट हो गया।",
        updateFailed: "पासवर्ड अपडेट विफल रहा।",
        newHasSpaces: "नए पासवर्ड में स्पेस नहीं हो सकते।",
      },
      chatDefaults: "चैट डिफ़ॉल्ट",
      autoTitleNewChats: "नई चैट को स्वतः शीर्षक दें",
      autoTitleNewChatsDescription:
        "पहले संदेश से एक छोटा शीर्षक बनाएं।",
      helperLlm: {
        sectionTitle: "Helper LLM",
        preloadOnStartup: "स्टार्टअप पर Helper LLM को प्री-कैश करें",
        preloadOnStartupDescription:
          "स्टार्टअप पर AI Assist हेल्पर मॉडल को पृष्ठभूमि में डाउनलोड करें। डिफ़ॉल्ट रूप से बंद; AI Assist अभी भी इसे मांग पर प्राप्त कर सकता है।",
        disabledByEnv:
          "बैकएंड एनवायरनमेंट में UNSLOTH_HELPER_MODEL_DISABLE द्वारा अक्षम।",
        loadError: "Helper LLM सेटिंग्स लोड करने में विफल।",
        saveError: "Helper LLM सेटिंग्स सहेजने में विफल।",
      },
      modelAutoSwitch: {
        sectionTitle: "मॉडल ऑटो-स्विच (OpenAI API)",
        enable: "अनुरोध के अनुसार मॉडल बदलें",
        enableDescription:
          "API अनुरोध में दिए गए डाउनलोड किए गए GGUF को सेवा देने से पहले लोड करें। डिफ़ॉल्ट रूप से बंद।",
        idleUnload: "निष्क्रिय ऑटो-अनलोड",
        idleUnloadDescription:
          "इतने सेकंड तक निष्क्रिय रहने के बाद VRAM खाली करें। 0 पर मॉडल लोड रहता है; न्यूनतम 60 सेकंड।",
        idleSecondsAriaLabel: "निष्क्रिय ऑटो-अनलोड की अवधि (सेकंड में)",
        mediaIdleUnload: "इमेज और वीडियो के लिए निष्क्रिय ऑटो-अनलोड",
        mediaIdleUnloadDescription:
          "इतने सेकंड तक निष्क्रिय रहने के बाद इमेज और वीडियो मॉडल अनलोड करके VRAM खाली करें। यह अपनी अलग सेटिंग है: ऊपर वाली सेटिंग केवल चैट मॉडल पर लागू होती है। 0 पर वे लोड रहते हैं; न्यूनतम 60 सेकंड।",
        mediaIdleSecondsAriaLabel:
          "इमेज और वीडियो के निष्क्रिय ऑटो-अनलोड की अवधि (सेकंड में)",
        mediaIdlePaused:
          "‘मॉडल को GPU मेमोरी में रखें’ या ‘केवल API द्वारा लोड किए गए मॉडल अनलोड करें’ चालू रहने तक रुका हुआ है।",
        idleNeedsEnable: "पहले ‘अनुरोध के अनुसार मॉडल बदलें’ चालू करें।",
        idleActiveViaEnv:
          "निष्क्रिय ऑटो-अनलोड UNSLOTH_MODEL_IDLE_TTL एनवायरनमेंट वेरिएबल के माध्यम से सक्रिय है।",
        loadError: "मॉडल ऑटो-स्विच सेटिंग्स लोड करने में विफल।",
        saveError: "मॉडल ऑटो-स्विच सेटिंग्स सहेजने में विफल।",
        idleError: "मॉडल को लोड रखने के लिए 0 दर्ज करें, या कम से कम 60 सेकंड।",
        autoDownload: "अनुपलब्ध मॉडल डाउनलोड करें",
        autoDownloadDescription:
          "API अनुरोध में बताया गया ऐसा GGUF लाता है जो अभी डाउनलोड नहीं हुआ है। इसके बाद API key रखने वाला कोई भी व्यक्ति डिस्क और बैंडविड्थ खर्च कर सकता है।",
        keepKv: "निष्क्रियता पर अनलोड होने के बाद भी चैट का संदर्भ बनाए रखें",
        keepKvDescription:
          "निष्क्रियता पर अनलोड होने से पहले KV कैश सहेजता है, ताकि दोबारा शुरू की गई चैट को इतिहास फिर से न पढ़ना पड़े। डिस्क पर 10 GB तक।",
        apiOnly: "केवल API द्वारा लोड किए गए मॉडल अनलोड करें",
        apiOnlyDescription:
          "निष्क्रियता पर अनलोड करते समय Studio से आपके द्वारा लोड किया गया मॉडल मेमोरी में बना रहता है, और केवल वही मॉडल हटाए जाते हैं जिन्हें किसी API अनुरोध ने लोड किया था।",
      },
      previewSharing: {
        sectionTitle: "पूर्वावलोकन साझाकरण",
        enableLabel: "सार्वजनिक पूर्वावलोकन लिंक",
        enableDescription:
          "हस्ताक्षरित लिंक रखने वाले किसी भी व्यक्ति को बिना लॉगिन के तैयार मॉडल से चैट करने दें। सार्वजनिक पूर्वावलोकन सुविधा को ऑफ़लाइन करने के लिए इसे बंद करें; साझा किए गए लिंक काम करना बंद कर देंगे।",
        loadError: "पूर्वावलोकन साझाकरण सेटिंग्स लोड करने में विफल।",
        saveError: "पूर्वावलोकन साझाकरण सेटिंग्स सहेजने में विफल।",
        revokeLabel: "सभी पूर्वावलोकन लिंक रद्द करें",
        revokeDescription:
          "साइनिंग सीक्रेट बदलें, ताकि आपके द्वारा साझा किया गया हर लिंक काम करना बंद कर दे। इसके बाद कॉपी किए गए नए लिंक काम करते रहेंगे।",
        revokeAction: "लिंक रद्द करें",
        revoking: "रद्द किया जा रहा है...",
        revokeConfirmTitle: "सभी पूर्वावलोकन लिंक रद्द करें?",
        revokeConfirmDescription:
          "आपके द्वारा साझा किया गया हर पूर्वावलोकन लिंक तुरंत काम करना बंद कर देगा। इसे पूर्ववत नहीं किया जा सकता।",
        revokeConfirmAction: "सभी लिंक रद्द करें",
        revoked: "सभी पूर्वावलोकन लिंक रद्द किए गए",
        revokeError: "पूर्वावलोकन लिंक रद्द नहीं किए जा सके",
      },
      notifications: {
        sectionTitle: "सूचनाएं",
        showLlamaUpdates: "llama.cpp अपडेट सूचनाएं",
        showLlamaUpdatesDescription:
          "नए मॉडल चलाने के लिए जब कोई नया llama.cpp बिल्ड उपलब्ध हो तो सूचित करें। यदि आप केवल ट्रेन करते हैं तो बंद कर दें।",
        showLoadedModels: "लोड किए गए मॉडल का संकेतक",
        showLoadedModelsDescription:
          "नीचे दाएं कोने में एक छोटा कार्ड दिखाएं जिसमें वर्तमान में मेमोरी में मौजूद हर मॉडल (चैट, स्पीच, इमेज, वीडियो) सूचीबद्ध हो, और हर एक को हटाने के लिए एक बटन हो।",
      },
      startup: {
        sectionTitle: "स्टार्टअप",
        launchAtLogin: "लॉगिन पर Unsloth चलाएं",
        launchAtLoginDescription:
          "लॉगिन करने पर Unsloth को बैकग्राउंड में शुरू करता है। इसे खोलने तक यह मेनू बार या सिस्टम ट्रे में रहता है।",

        closeToTray: "सिस्टम ट्रे में बंद करें",
        closeToTrayDescription:
          "मुख्य विंडो बंद करने पर Unsloth और उसके सर्वर को बैकग्राउंड में चलते रहने दें।",
        closeToTraySaveError: "सिस्टम ट्रे में बंद करने की सेटिंग अपडेट नहीं हो सकी।",
        loadError: "लॉगिन पर चलाने की सेटिंग लोड नहीं हो सकी।",
        saveError: "लॉगिन पर चलाने की सेटिंग अपडेट नहीं हो सकी।",
      },
      uploads: {
        sectionTitle: "अपलोड",
        maxUploadSize: "ट्रेनिंग डेटासेट अपलोड सीमा",
        maxUploadSizeDescription: "डिफ़ॉल्ट {defaultSize} MB है।",
      },
      rag: {
        sectionTitle: "दस्तावेज़ और RAG",
        embeddingModel: "एम्बेडिंग मॉडल",
        embeddingModelDescription:
          "आपके दस्तावेज़ों को इंडेक्स और खोजने के लिए उपयोग किया जाने वाला Hugging Face मॉडल या स्थानीय पथ। डिफ़ॉल्ट {defaultModel} है।",
        reindexWarning:
          "केवल नए इंडेक्स किए गए दस्तावेज़ों को प्रभावित करता है। मॉडल बदलने के बाद मौजूदा दस्तावेज़ फिर से अपलोड करें।",
        emptyError: "एक Hugging Face मॉडल id या स्थानीय पथ दर्ज करें।",
        loadError: "एम्बेडिंग मॉडल सेटिंग लोड करने में विफल।",
        saveError: "एम्बेडिंग मॉडल सहेजने में विफल।",
        saved: "एम्बेडिंग मॉडल सहेजा गया।",
        saveAnyway: "फिर भी सहेजें",
        resetAction: "डिफ़ॉल्ट पर रीसेट करें",
      },
      storage: {
        sectionTitle: "स्टोरेज",
        modelsFolder: "मॉडल फ़ोल्डर",
        modelsFolderDescription: "जहां डाउनलोड किए गए मॉडल संग्रहीत होते हैं।",
        openAction: "खोलें",
        copyAction: "पथ कॉपी करें",
        copied: "पथ कॉपी किया गया",
        openError: "फ़ोल्डर नहीं खोला जा सका",
        copyError: "पथ कॉपी नहीं किया जा सका",
      },
      resetPreferences: {
        sectionTitle: "खतरनाक क्षेत्र",
        label: "सभी स्थानीय प्राथमिकताएं रीसेट करें",
        description:
          "केवल-स्थानीय प्राथमिकताएं साफ़ करता है। चैट, API एक्सेस, और DB-समर्थित सेटिंग्स बनी रहती हैं।",
        action: "प्राथमिकताएं रीसेट करें",
        confirmTitle: "सभी स्थानीय प्राथमिकताएं रीसेट करें?",
        confirmDescription:
          "केवल-स्थानीय प्राथमिकताएं साफ़ करता है और Unsloth को फिर से लोड करता है। चैट, API एक्सेस, और DB-समर्थित सेटिंग्स बनी रहती हैं।",
        confirmAction: "रीसेट करें और फिर से लोड करें",
      },
      permissions: {
        sectionTitle: "अनुमतियां",
        bypassLabel: "टूल अनुमतियां",
        bypassDescription:
          "चैट के टूल कॉल (टर्मिनल, python, वेब, MCP) चलाने से पहले Unsloth उन्हें कैसे मंज़ूरी देता है। “Full access” मोड से मंज़ूरी और कोड सैंडबॉक्स बंद हो जाते हैं।",
      },
    },
    profile: {
      title: "प्रोफ़ाइल",
      description: "Unsloth में आपकी प्रोफ़ाइल कैसे दिखती है।",
      changePicture: "प्रोफ़ाइल चित्र बदलें",
      displayName: "प्रदर्शन नाम",
      nickname: "Unsloth आपको क्या कहकर बुलाए?",
      nicknamePlaceholder: "उपनाम",
      nicknameSaved: "पसंदीदा नाम सहेजा गया",
      avatarShape: "प्रोफ़ाइल चित्र की आकृति",
      avatarShapeCircle: "वृत्त",
      avatarShapeRounded: "गोल किनारे",
      chooseSloth: "या एक स्लॉथ चुनें",
      nameSaved: "प्रोफ़ाइल नाम सहेजा गया",
      namePersistErrorTitle: "प्रोफ़ाइल नाम सहेजा नहीं जा सका",
      namePersistErrorDescription:
        "इस सत्र के लिए नाम अपडेट किया गया, लेकिन फिर से लोड करने के बाद शायद न रहे।",
      photoUpdated: "प्रोफ़ाइल फोटो अपडेट हुई",
      photoPersistErrorTitle: "प्रोफ़ाइल फोटो सहेजी नहीं जा सकी",
      photoPersistErrorDescription:
        "इस सत्र के लिए फोटो अपडेट की गई, लेकिन फिर से लोड करने के बाद शायद न रहे।",
      photoUpdateErrorTitle: "प्रोफ़ाइल फोटो अपडेट नहीं की जा सकी",
      imageUseError: "इस छवि का उपयोग नहीं किया जा सका।",
      uploadPhoto: "फ़ोटो अपलोड करें",
      removePhoto: "हटाएं",
      pictureOptions: "प्रोफ़ाइल फ़ोटो विकल्प",
      greetingSloth: "अभिवादन में स्लॉथ",
      greetingSlothDescription: "चैट के अभिवादन में स्लॉथ दिखाएं।",
      noPicture: "कोई प्रोफ़ाइल फ़ोटो नहीं",
      noneLabel: "कोई नहीं",
      stats: {
        title: "आपके आँकड़े",
        subtitle:
          "नीचे सब कुछ आपके अपने इतिहास से गिना जाता है। कुछ भी इकट्ठा नहीं किया जाता और न ही Unsloth को भेजा जाता है।",
        retry: "फिर कोशिश करें",
        privacyNote:
          "आँकड़े आपके Unsloth इंस्टॉल में मौजूद चैट और ट्रेनिंग इतिहास से गिने जाते हैं। कुछ भी इकट्ठा नहीं किया जाता, और Unsloth या किसी तीसरे पक्ष को कुछ नहीं भेजा जाता।",
        emptyChats:
          "अभी तक कोई चैट नहीं। बातचीत शुरू करें और आपके आँकड़े यहाँ दिखने लगेंगे।",
        lifetimeTokens: "अब तक के कुल टोकन",
        peakTokens: "सबसे व्यस्त दिन",
        longestChat: "सबसे लंबी चैट",
        currentStreak: "मौजूदा स्ट्रीक",
        longestStreak: "सबसे लंबी स्ट्रीक",
        activityTitle: "टोकन गतिविधि",
        activityDescription: "अवधि: {weeks} · {total}",
        mode: {
          daily: "दैनिक",
          weekly: "साप्ताहिक",
          cumulative: "संचयी",
        },
        cellTooltip: "{date} · {tokens}, {messages}",
        weekTooltip: "{date} वाला हफ़्ता · {tokens}",
        less: "कम",
        more: "ज़्यादा",
        insightsTitle: "गतिविधि विश्लेषण",
        totalChats: "कुल चैट",
        totalMessages: "कुल संदेश",
        tokensIn: "भेजे गए टोकन",
        tokensOut: "बनाए गए टोकन",
        cachedTokens: "कैश किए गए टोकन",
        cachedValue: "{tokens} (इनपुट का {percent}%)",
        avgTokensPerChat: "प्रति चैट औसत टोकन",
        timeInChat: "चैट में बिताया समय",
        activeDays: "सक्रिय दिन",
        toolCalls: "टूल कॉल",
        attachments: "संलग्न फ़ाइलें",
        avgSpeed: "औसत गति",
        bestSpeed: "सबसे तेज़ जवाब",
        firstToken: "पहले टोकन तक औसत समय",
        tokensPerSecond: "{value} tok/s",
        topModelsTitle: "सबसे ज़्यादा उपयोग किए गए मॉडल",
        topModelsDescription: "आदान-प्रदान किए गए टोकन के अनुसार",
        modelSummary: "{tokens} · {messages}",
        noModels: "अभी तक किसी मॉडल का उपयोग दर्ज नहीं हुआ।",
        trainingTitle: "ट्रेनिंग",
        trainingDescription: "इस वर्कस्पेस के फाइन-ट्यूनिंग रन",
        trainingRuns: "रन",
        trainingCompleted: "पूर्ण",
        trainingSteps: "स्टेप",
        trainingTokens: "ट्रेन किए गए टोकन",
        trainingTime: "ट्रेनिंग का समय",
        bestLoss: "न्यूनतम लॉस",
        runSteps: "{steps}",
        runLoss: "लॉस {loss}",
      },
    },
    appearance: {
      title: "रूप-रंग",
      description: "इस डिवाइस पर Unsloth कैसा दिखता है।",
      theme: {
        title: "थीम",
        label: "रंग योजना",
        description: "लाइट, डार्क या सिस्टम सेटिंग के अनुसार।",
        system: "सिस्टम",
        light: "लाइट",
        dark: "डार्क",
      },
      palette: {
        label: "रंग पैलेट",
        description: "लाइट और डार्क मोड में पूरे Unsloth में दिखने वाले रंग।",
        standard: "मानक",
        classic: "क्लासिक",
        minimal: "मिनिमल",
      },
      custom: {
        reset: "रीसेट करें",
        resetAll: "कस्टमाइज़ेशन रीसेट करें",
        preferencesTitle: "प्राथमिकताएं",
        colors: {
          lightGroup: "लाइट थीम",
          darkGroup: "डार्क थीम",
          accent: "एक्सेंट",
          background: "पृष्ठभूमि",
          foreground: "अग्रभूमि",
        },
        fontDefault: "डिफ़ॉल्ट",
        fontBundledGroup: "बिल्ट-इन",
        fontImportedGroup: "आयातित",
        fontDeviceGroup: "इस डिवाइस पर",
        fontFolderGroup: "फ़ोल्डर से",
        fontDeviceLoading: "डिवाइस के फ़ॉन्ट खोजे जा रहे हैं…",
        fontSearch: "फ़ॉन्ट खोजें…",
        fontNoResults: "कोई फ़ॉन्ट नहीं मिला।",
        colorPicker: {
          hue: "ह्यू",
          hex: "हेक्स रंग",
          eyedropper: "स्क्रीन से रंग चुनें",
        },
        uiFont: {
          label: "UI फ़ॉन्ट",
        },
        headingFont: {
          label: "शीर्षक फ़ॉन्ट",
        },
        chatFont: {
          label: "चैट फ़ॉन्ट",
        },
        codeFont: {
          label: "कोड फ़ॉन्ट",
        },
        importFont: {
          upload: "अपलोड करें",
          scanFolder: "फ़ोल्डर चुनें",
          alreadyAvailable:
            "यह फ़ॉन्ट पहले से उपलब्ध है, इसलिए मौजूदा कॉपी का ही उपयोग होगा।",
          folderNoFonts: "उस फ़ोल्डर में कोई फ़ॉन्ट फ़ाइल नहीं मिली।",
          remove: "हटाएं",
          errorInvalidType:
            "असमर्थित फ़ाइल प्रकार। .woff2, .woff, .ttf, या .otf उपयोग करें।",
          errorTooLarge: "फ़ॉन्ट फ़ाइल बहुत बड़ी है (अधिकतम 1.5 MB)।",
          errorLimit: "आप अधिकतम 3 फ़ॉन्ट आयात कर सकते हैं।",
          errorStorageFull:
            "इस फ़ॉन्ट के लिए पर्याप्त लोकल स्टोरेज नहीं है। पहले कोई आयातित फ़ॉन्ट हटाएं।",
          errorFailed: "यह फ़ॉन्ट फ़ाइल लोड नहीं हो सकी।",
        },
        uiFontSize: {
          label: "UI फ़ॉन्ट का आकार",
          description: "Unsloth UI के लिए उपयोग होने वाला आधार आकार समायोजित करें।",
        },
        codeFontSize: {
          label: "कोड फ़ॉन्ट का आकार",
          description: "कोड के लिए उपयोग होने वाला आधार आकार समायोजित करें।",
        },
        fontSmoothing: {
          label: "फ़ॉन्ट स्मूदिंग",
          description: "फ़ॉन्ट एंटी-एलियासिंग का उपयोग करें।",
        },
        contrast: {
          label: "कंट्रास्ट",
          description: "बॉर्डर और सेकंडरी टेक्स्ट की तीव्रता।",
        },
        reduceMotion: {
          label: "एनिमेशन कम करें",
          description: "एनिमेशन कम करें या सिस्टम सेटिंग का पालन करें।",
          system: "सिस्टम",
          on: "चालू",
          off: "बंद",
        },
        pointerCursors: {
          label: "पॉइंटर कर्सर उपयोग करें",
          description:
            "इंटरैक्टिव तत्वों पर होवर करने पर कर्सर को पॉइंटर में बदलें।",
        },
      },
      language: {
        title: "भाषा",
        label: "प्रदर्शन भाषा",
        description: "Unsloth द्वारा उपयोग की जाने वाली भाषा।",
        autoDetect: "स्वतः पहचान",
      },
      layout: {
        title: "लेआउट",
        compactSidebar: "साइडबार को डिफ़ॉल्ट रूप से पिन करें",
        compactSidebarDescription:
          "साइडबार को आइकन में संक्षिप्त करने के बजाय विस्तारित रखें।",
      },
      sidebarNav: {
        title: "साइडबार नेविगेशन",
        description:
          "साइडबार के टैब पिन करें और उनका क्रम बदलें। जो टैब पिन नहीं हैं वे “अधिक” मेन्यू में इकट्ठा हो जाते हैं; यदि सिर्फ़ एक ही टैब पिन नहीं है तो एक आइटम वाला मेन्यू बनाने के बजाय उसे छिपा दिया जाता है। नई चैट अपनी जगह पर तय रहती है।",
        dragToReorder: "क्रम बदलने के लिए खींचें",
        pinToSidebar: "{name} को साइडबार में पिन करें",
        moreHolds: "अधिक ({count})",
      },
      sidebarMenu: {
        title: "साइडबार मेन्यू",
        description:
          "साइडबार के प्रोफ़ाइल मेन्यू में आइटम दिखाएं, छिपाएं और क्रम बदलें। सेटिंग्स, सहायता, लॉग आउट और शटडाउन अपनी जगह पर तय रहते हैं।",
        darkModeToggle: "डार्क मोड टॉगल",
        dragToReorder: "क्रम बदलने के लिए खींचें",
      },
    },
    resources: {
      title: "सिस्टम",
      description: "इस Unsloth सर्वर के हार्डवेयर और स्टोरेज की निगरानी करें।",
      liveUpdates: "लाइव अपडेट",
      floatingWindow: "फ्लोटिंग विंडो",
      disableOverlay: "ओवरले अक्षम करें",
      liveMonitor: {
        title: "लाइव मॉनिटर",
        apiTitle: "API मॉनिटर",
        summary: "सक्रिय अनुरोध, त्रुटियाँ और टोकन उपयोग",
        status: "{active} सक्रिय · {recent} हाल के · {model}",
        noModelLoaded: "कोई मॉडल लोड नहीं है",
        autoOpen: "फ़्लोटिंग मॉनिटर अपने आप दिखाएँ",
        autoOpenDescription: "API ट्रैफ़िक आने पर एक छोटा पैनल खोलता है।",
        cpu: "CPU",
        ram: "RAM",
        disk: "डिस्क",
        vram: "VRAM",
        cpuCores: "{logical} लॉजिकल / {physical} फिजिकल कोर",
        currentLoad: "वर्तमान लोड",
        free: "{value} खाली",
        noGpu: "कोई दृश्यमान GPU नहीं",
      },
      gpu: {
        title: "GPU डिवाइस",
        ggufInference: "GGUF इन्फ़रेंस",
        unavailable: "उपलब्ध नहीं",
        noGpu: "कोई दृश्यमान GPU नहीं मिला। केवल-CPU संसाधन ऊपर दिखाए गए हैं।",
        unknownDevice: "अज्ञात GPU",
        deviceWithIndex: "GPU {index}",
        vramUtilization: "VRAM",
        used: "{value} उपयोग में",
        free: "{value} खाली",
        total: "{value} कुल",
      },
      llamaBackend: {
        title: "GGUF इनफ़रेंस इंजन",
        label: "कंप्यूट बैकएंड",
        description: "वह बैकएंड जिस पर llama.cpp GGUF मॉडल चलाता है।",
        runningOn: "llama.cpp अभी {backend} पर चल रहा है।",
        hint: "इस बैकएंड के लिए llama.cpp बिल्ड इंस्टॉल करता है और अपडेट के बाद भी वही रखता है। जब स्वचालित चुनाव क्रैश हो या आपका GPU ड्राइवर उसे सपोर्ट न करे, तब उपयोगी है। केवल वही बैकएंड दिखते हैं जिनका बिल्ड इस मशीन के लिए मौजूद है; ट्रेनिंग पर कोई असर नहीं पड़ता।",
        autoWith: "स्वचालित ({backend})",
        apply: "लागू करें",
        applying: "इंस्टॉल हो रहा है...",
        applyHint: "नया बिल्ड डाउनलोड करके llama.cpp को फिर से शुरू करता है। लोड किया गया मॉडल अनलोड हो जाएगा।",
        applyHintWithSize: "{size} डाउनलोड करके llama.cpp को फिर से शुरू करता है। लोड किया गया मॉडल अनलोड हो जाएगा।",
        switchedTo: "अब llama.cpp {backend} पर चल रहा है।",
        switchFailed: "llama.cpp बैकएंड नहीं बदला जा सका।",
        switchInterrupted: "स्विच पूरा होने से पहले बाधित हो गया।",
        envLocked: "पर्यावरण चर UNSLOTH_LLAMA_CPP_BACKEND ने इसे {backend} पर तय किया है, जो इस सेटिंग पर भारी पड़ता है।",
        backends: {
          auto: "स्वचालित",
          cpu: "CPU",
          cuda: "CUDA",
          rocm: "ROCm",
          vulkan: "Vulkan",
          metal: "Metal",
        },
        unsupported: {
          notInstalled: "कोई प्रबंधित llama.cpp इंस्टॉल नहीं मिला, इसलिए बदलने के लिए कोई बैकएंड नहीं है।",
          localLink: "llama.cpp आपकी अपनी लिंक की हुई लोकल डायरेक्टरी है, इसलिए Unsloth उसे नहीं बदलेगा।",
          sourceBuild: "यह llama.cpp सोर्स से बनाया गया है, इसलिए इसका बैकएंड यहाँ से नहीं बदला जा सकता।",
          unresolved: "उपलब्ध बैकएंड की जाँच नहीं हो सकी। अपना कनेक्शन देखकर दोबारा कोशिश करें।",
        },
        // दिखाया नहीं जाता: सेटिंग्स खोज के लिए अतिरिक्त शब्द।
        llamaBackendKeywords:
          "llama.cpp backend gguf इनफ़रेंस cuda rocm hip vulkan metal cpu gpu एक्सेलेरेटर prebuilt बदलें इंजन",
      },
      modelMemory: {
        title: "मॉडल मेमोरी",
        keepResident: "मॉडल को GPU मेमोरी में रखें",
        keepResidentDescription: "प्रॉम्प्ट के बीच VRAM में बना रहता है।",
        keepResidentHint: "जब तक मॉडल लोड रहता है, वेट्स सिस्टम RAM को वापस नहीं दिए जाते। निष्क्रिय होने पर स्वतः अनलोड बंद कर देता है, और जब वेट्स वास्तव में होस्ट RAM में रहते हैं (यूनिफाइड मेमोरी, या आंशिक GPU ऑफ़लोड) तब --mlock भी भेजता है, ताकि OS उन्हें पेज आउट करके आपके अगले प्रॉम्प्ट पर दोबारा अपलोड न करे।",
        noRamReserve: "मॉडल के लिए सिस्टम RAM आरक्षित न करें",
        noRamReserveDescription: "RAM में पूरी प्रति नहीं रखता।",
        noRamReserveHint: "RAM में पूरी प्रति रखने के बजाय वेट्स को VRAM में भेजता है। llama.cpp की मेमोरी-मैप्ड लोडिंग बनाए रखता है और --no-mmap तथा --mlock हटा देता है।",
        mlockVetoed: "--mlock बंद ही रहता है: मॉडल को पिन करने से उसकी पूरी मात्रा के लिए RAM आरक्षित हो जाएगी। निष्क्रिय होने पर स्वतः अनलोड अब भी अक्षम है।",
        memlockCapped: "यह सिस्टम लॉक की गई मेमोरी को {limit} तक सीमित करता है। इससे बड़ा मॉडल पूरी तरह पिन नहीं होगा; ulimit -l से सीमा बढ़ाएँ।",
        reloadRequired: "नई मेमोरी सेटिंग्स लागू करने के लिए मॉडल दोबारा लोड करें।",
        loadError: "मॉडल मेमोरी सेटिंग्स लोड नहीं हो सकीं",
        saveError: "मॉडल मेमोरी सेटिंग्स सहेजी नहीं जा सकीं",
        // Not rendered: extra terms the settings search matches these rows on.
        modelMemoryKeywords:
          "mlock memlock ulimit vram gpu मेमोरी रैम स्थायी पिन लॉक बनाए रखें लोड अनलोड निष्क्रिय mmap no-mmap load-mode स्वैप पेजिंग",
      },
      storage: {
        title: "स्टोरेज",
        systemDisk: "सिस्टम डिस्क",
        diskUsage: "{used} उपयोग में / {total}",
        diskFree: "{free} खाली",
        modelsFolder: "मॉडल फ़ोल्डर",
        modelsFolderKeywords:
          "मॉडल फ़ोल्डर फोल्डर निर्देशिका पथ स्थान डाउनलोड कैश संग्रहण डिस्क ड्राइव स्थानांतरित बदलें models folder path hugging face",
        modelsFolderDescription: "डाउनलोड किए गए मॉडल कहाँ संग्रहीत होते हैं।",
        modelsFolderHint: "डाउनलोड किए गए मॉडल कहाँ संग्रहीत होते हैं। मॉडल को अपनी सिस्टम ड्राइव से दूर रखने के लिए इसे बदलें। यह केवल नए डाउनलोड पर लागू होता है। आपके पास पहले से मौजूद मॉडल वहीं रहते हैं।",
        openAction: "खोलें",
        copyAction: "पथ कॉपी करें",
        copied: "पथ कॉपी किया गया",
        openError: "फ़ोल्डर नहीं खोला जा सका",
        copyError: "पथ कॉपी नहीं किया जा सका",
        futureDownloads: "केवल नए डाउनलोड",
        environmentManaged: "{variable} एनवायरनमेंट वेरिएबल द्वारा प्रबंधित।",
        locationFree: "{free} खाली",
        changeAction: "बदलें",
        resetAction: "डिफ़ॉल्ट उपयोग करें",
        chooseTitle: "मॉडल डाउनलोड की जगह चुनें",
        chooseAction: "आगे के डाउनलोड के लिए उपयोग करें",
        cacheSaved: "मॉडल डाउनलोड की जगह अपडेट हो गई",
        cacheSaveError: "मॉडल डाउनलोड की जगह अपडेट नहीं हो सकी",
        cachePickerError: "फ़ोल्डर चुनने वाला डायलॉग नहीं खुल सका",
      },
      environment: {
        title: "एनवायरनमेंट",
        backend: "बैकएंड",
        python: "Python",
        torch: "Torch",
        transformers: "Transformers",
        uptime: "अपटाइम",
        processMemory: "प्रोसेस मेमोरी",
        notInstalled: "इंस्टॉल नहीं है",
        unknown: "अज्ञात",
      },
    },
    agents: {
      title: "एजेंट",
      description:
        "unsloth start की मदद से Claude Code और Codex जैसे कोडिंग एजेंट को लोकल मॉडल से जोड़ें।",
      intro:
        "Claude Code, Codex, Hermes, OpenClaw, OpenCode और दूसरे एजेंट को Unsloth द्वारा लोकली सर्व किए गए मॉडल से जोड़ता है, पूरी तरह ऑफ़लाइन। यह एक OpenAI-संगत सर्वर चलाता है और आपके एजेंट की कॉन्फ़िगरेशन फ़ाइलों को कभी नहीं छूता।",
      readDocs: "दस्तावेज़ पढ़ें",
      copy: "कॉपी करें",
      copied: "कॉपी किया गया",
      commandBuilder: "कमांड बिल्डर",
      agent: "कोडिंग एजेंट",
      model: "मॉडल",
      searchModels: "GGUF मॉडल खोजें...",
      noModels: "कोई मेल खाता GGUF मॉडल नहीं।",
      showingModels:
        "{total} में से {shown} परिणाम दिखाए जा रहे हैं। सूची छोटी करने के लिए टाइप करते रहें।",
      quantization: "क्वांटाइज़ेशन",
      loadingQuantizations: "क्वांटाइज़ेशन लोड हो रहे हैं...",
      noQuantizations: "अलग से कोई क्वांटाइज़ेशन नहीं",
      recommended: "अनुशंसित",
      downloaded: "डाउनलोड हो चुका",
      quantizationLoadError:
        "सभी क्वांटाइज़ेशन लोड नहीं हो सके। कमांड उपलब्ध मॉडल मान का उपयोग करेगा।",
      generatedCommand: "बनाया गया कमांड",
      docs: "दस्तावेज़",
      agentDocs: "{agent} के सेटअप दस्तावेज़ खोलें",
      copyGeneratedCommand: "बनाया गया कमांड कॉपी करें",
      modelNote:
        "Codex को llama-server द्वारा सर्व किया गया GGUF मॉडल चाहिए। दूसरे एजेंट Transformers-आधारित मॉडल भी उपयोग कर सकते हैं; Unsloth में पहले से लोड किए गए मॉडल का उपयोग करने के लिए --model हटा दें।",
      subagent: {
        title: "लोकल मॉडल को सबएजेंट के रूप में उपयोग करें",
        description:
          "{agent} को उसके मौजूदा मॉडल पर ही रहने दें और चुने हुए काम इस लोकल Unsloth मॉडल को सौंपें।",
        setupCommand: "सेटअप कमांड",
        copySetupCommand: "सबएजेंट सेटअप कमांड कॉपी करें",
        usagePrompt: "फिर {agent} में यह टाइप करें:",
        copyUsagePrompt: "सबएजेंट उपयोग प्रॉम्प्ट कॉपी करें",
        defaultPrompt: "इस फ़ंक्शन को लागू करने के लिए एक लोकल एजेंट चलाओ।",
        opencodePrompt: "@unsloth इस टेस्ट के फेल होने की वजह ढूंढो",
      },
      quickstart: {
        title: "कमांड बनाएं",
        description:
          "Studio में अभी लोड किए गए मॉडल के साथ एजेंट चलाएं। पहले एक मॉडल लोड करें, फिर claude की जगह नीचे दिए गए किसी भी समर्थित एजेंट का नाम रखें।",
        noneDetected: "आपके PATH में कोई समर्थित एजेंट CLI नहीं मिला।",
        installed: "इंस्टॉल है",
      },
      supportedAgents: {
        title: "समर्थित एजेंट",
        description: "हर एजेंट अपने कमांड से शुरू होता है:",
        requiresGguf: "GGUF मॉडल चाहिए",
      },
      models: {
        title: "मॉडल चुनना",
        description:
          "मॉडल और क्वांटाइज़ेशन चुनने के लिए --model और कॉन्टेक्स्ट विंडो सेट करने के लिए --context-length दें। क्वांटाइज़ेशन सफ़िक्स या स्पष्ट --gguf-variant फ़्लैग उपयोग करें।",
        suffixLabel: "क्वांटाइज़ेशन सफ़िक्स के साथ",
        variantLabel: "स्पष्ट वेरिएंट फ़्लैग के साथ",
      },
      options: {
        title: "सामान्य विकल्प",
        description:
          "Unsloth के फ़्लैग पहले पढ़े जाते हैं; जो पहचान में नहीं आता वह सीधे एजेंट को भेज दिया जाता है।",
        model:
          "मॉडल चुनता है। --model न देने पर unsloth start वही मॉडल उपयोग करता है जो Studio में लोड है, और कोई लोड न हो तो त्रुटि देता है।",
        contextLength:
          "मांगी गई कॉन्टेक्स्ट लंबाई सेट करता है (उपनाम: --max-seq-length)।",
        ggufVariant: "GGUF क्वांटाइज़ेशन वेरिएंट चुनता है।",
        loadIn4bit:
          "Hugging Face मॉडलों के लिए 4-बिट लोडिंग चालू या बंद करता है।",
        tensorParallel: "कई GPU पर टेंसर पैरेललिज़्म चालू या बंद करता है।",
        serve: "अपने आप चलने वाला लोकल सर्वर चालू या बंद करता है।",
        launch: "एजेंट चलाता है, या सिर्फ़ कमांड और एनवायरनमेंट दिखाता है।",
        persist:
          "Unsloth द्वारा प्रबंधित एजेंट स्टोरेज को रनों के बीच बनाए रखता है।",
        asSubagent:
          "मूल एजेंट को उसके मौजूदा मॉडल पर रखता है और Unsloth को लोकल सबएजेंट के रूप में दर्ज करता है (Claude Code, Codex और OpenCode)।",
        apiKey:
          "आपकी Unsloth API key लेता है (या UNSLOTH_API_KEY सेट करें)।",
        yolo:
          "मंज़ूरी के प्रॉम्प्ट छोड़ देता है। केवल भरोसेमंद वातावरण में उपयोग करें।",
      },
      remote: {
        title: "रिमोट Studio से जुड़ें",
        description:
          "चलाने से पहले ये सेट करके unsloth start को कहीं और चल रहे Studio की ओर भेजें (या --api-key सीधे दें):",
      },
      passthrough: {
        title: "एजेंट को आर्ग्युमेंट भेजना",
        description:
          "Unsloth के फ़्लैग के बाद दिए गए आर्ग्युमेंट सीधे एजेंट को भेजे जाते हैं, इसलिए resume जैसे एजेंट के अपने कमांड काम करते रहते हैं:",
      },
      dryRun: {
        title: "चलाए बिना देखें",
        description:
          "एजेंट चलाने के बजाय एनवायरनमेंट और कमांड दिखाने के लिए --no-launch जोड़ें। अगर --model दिया गया है तो मॉडल फिर भी रिज़ॉल्व होकर लोड हो सकता है।",
      },
    },
    chat: {
      title: "चैट",
      description: "इस डिवाइस पर चैट के व्यवहार को अपनी पसंद के अनुसार बदलें।",
      modelSelection: {
        title: "मॉडल चुनने की सेटिंग्स",
        expandQuantizations: "क्वांटाइज़ेशन विस्तृत रूप में दिखाएँ",
        expandQuantizationsDescription:
          "चालू: “On Device” के GGUF मॉडल के क्वांटाइज़ेशन तुरंत दिखेंगे। बंद: किसी मॉडल के क्वांटाइज़ेशन देखने के लिए उस पर क्लिक करें।",
        showAllQuantizations: "सभी क्वांटाइज़ेशन दिखाएँ",
        showAllQuantizationsDescription:
          "चालू: “On Device” के सभी क्वांटाइज़ेशन की सूची दिखेगी, जिनमें डाउनलोड न किए गए क्वांटाइज़ेशन भी शामिल हैं। बंद: केवल डाउनलोड किए गए क्वांटाइज़ेशन दिखेंगे।",
      },
      menu: {
        title: "चैट मेन्यू",
        description:
          "आइटम को चैट के + साइड मेन्यू में पिन करें। बाकी आइटम “More” में चले जाएँगे।",
        chatWithFiles: "फ़ाइलों के साथ चैट (RAG)",
        mcp: "MCP",
        savedPrompts: "सहेजे गए प्रॉम्प्ट",
        compareChat: "चैट की तुलना करें",
        exportChat: "चैट एक्सपोर्ट करें",
      },
      showResponseModel: "जवाब देने वाला मॉडल दिखाएँ",
      showResponseModelDescription:
        "असिस्टेंट के जवाबों में मॉडल का मेटाडेटा दिखाएँ।",
      modelDisclaimer: "मॉडल अस्वीकरण दिखाएं",
      modelDisclaimerDescription:
        'चैट बॉक्स के नीचे "LLMs can make mistakes" दिखाएं।',
      thinking: {
        collapseByDefault: "थिंकिंग को डिफ़ॉल्ट रूप से संक्षिप्त रखें",
        collapseByDefaultDescription:
          "मॉडल के सोचते समय रीज़निंग अपने आप खुलने के बजाय संक्षिप्त रहती है। पढ़ने के लिए किसी भी ब्लॉक को विस्तृत करें।",
      },
      artifacts: {
        title: "Canvas",
        collapseHtmlBlocks: "HTML ब्लॉक संक्षिप्त करें",
        collapseHtmlBlocksDescription:
          "Canvas मोड स्वतः पूर्ण HTML को संक्षिप्त कर देता है। Canvas बंद होने पर फेंस्ड HTML दस्तावेज़ों को भी संक्षिप्त करने के लिए इसे चालू करें।",
        allowNetworkAccess: "canvas नेटवर्क एक्सेस की अनुमति दें",
        allowNetworkAccessDescription:
          "canvas पूर्वावलोकन को CDN से स्क्रिप्ट, स्टाइल, फ़ॉन्ट, मीडिया, और नेटवर्क संसाधन लोड करने दें। पूरी तरह ऑफ़लाइन पूर्वावलोकन के लिए बंद रखें।",
        blockedBanner: "{hosts} से {count} बाहरी संसाधन अवरुद्ध किया गया।",
        blockedBannerPlural: "{hosts} से {count} बाहरी संसाधन अवरुद्ध किए गए।",
        blockedBannerAction: "इस Canvas के लिए अनुमति दें",
      },
      data: "डेटा",
      exportHistory: "चैट इतिहास एक्सपोर्ट करें",
      exportHistoryDescription: "सभी चैट और संदेशों को JSON के रूप में डाउनलोड करें।",
      exportAction: "एक्सपोर्ट करें",
      exportingAction: "एक्सपोर्ट हो रहा है...",
      exportConversations: "हाल के और प्रोजेक्ट एक्सपोर्ट करें",
      exportConversationsDescription:
        "हाल के या हाल के और प्रोजेक्ट चैट को Raw JSONL, CSV या ShareGPT JSONL के रूप में डाउनलोड करें, एक संयुक्त फ़ाइल में या हर चैट के लिए अलग-अलग।",
      exportConversationsAction: "एक्सपोर्ट करें",
      exportScopeRecents: "हाल के",
      exportScopeAll: "हाल के + प्रोजेक्ट",
      exportCombinedSuffix: "(संयुक्त)",
      exportPerChatSuffix: "(प्रति चैट)",
      importChats: "चैट इंपोर्ट करें",
      importChatsDescription:
        "Open WebUI, JSONL, NDJSON या CSV एक्सपोर्ट को Recents में इंपोर्ट करें।",
      importChatsAction: "इंपोर्ट करें",
      importNoConversations: "फ़ाइल में कोई वार्तालाप नहीं मिला।",
      importedOneChat: "1 वार्तालाप हाल के सेक्शन में इंपोर्ट किया गया।",
      importedChatCount:
        "{count} वार्तालाप हाल के सेक्शन में इंपोर्ट किए गए।",
      importingChats: "चैट इंपोर्ट हो रही हैं: अब तक {count} ({percent}%)...",
      importedChatCountPartial: "{count} बातचीत Recents में इंपोर्ट की गईं; {failed} सेव नहीं हो सकीं।",
      importFailed: "इंपोर्ट विफल रहा।",
      clearHistory: "चैट इतिहास साफ़ करें",
      clearHistoryDescription: "इस डिवाइस से चैट इतिहास हटाएं।",
      clearAction: "साफ़ करें",
      clearAllChats: "सभी चैट साफ़ करें",
      clearAllChatsDescription: "इस डिवाइस पर हर चैट को स्थायी रूप से हटाएं।",
      noChatsToClear: "साफ़ करने के लिए कोई चैट नहीं।",
      clearOneChatDescription:
        "इस डिवाइस पर एकमात्र चैट को स्थायी रूप से हटाएं।",
      clearChatCountDescription:
        "इस डिवाइस पर सभी {count} चैट को स्थायी रूप से हटाएं।",
      clearChatsAction: "चैट साफ़ करें",
      clearOneChatTitle: "1 चैट साफ़ करें?",
      clearChatsTitle: "{count} चैट साफ़ करें?",
      clearChatsConfirmDescription:
        "इस डिवाइस पर हर चैट को स्थायी रूप से हटा देता है। इसे पूर्ववत नहीं किया जा सकता।",
      clearingAction: "साफ़ किया जा रहा है...",
      clearOneChatAction: "1 चैट साफ़ करें",
      clearChatCountAction: "{count} चैट साफ़ करें",
      clearedAllChats: "सभी चैट साफ़ की गईं",
      clearedOneChat: "1 चैट साफ़ की गई",
      clearedChatCount: "{count} चैट साफ़ की गईं",
      someChatsCouldNotBeCleared: "कुछ चैट साफ़ नहीं की जा सकीं",
      chatsClearedRemainOne:
        "{clearedCount} चैट साफ़ की गईं; 1 चैट शेष है। कृपया पुनः प्रयास करें।",
      chatsClearedRemain:
        "{clearedCount} चैट साफ़ की गईं; {remainingCount} चैट शेष हैं। कृपया पुनः प्रयास करें।",
      oneChatClearedRemain:
        "1 चैट साफ़ की गई; {remainingCount} चैट शेष हैं। कृपया पुनः प्रयास करें।",
      oneChatClearedRemainOne: "1 चैट साफ़ की गई; 1 चैट शेष है। कृपया पुनः प्रयास करें।",
      storageClearFailedOne:
        "एक स्टोरेज साफ़ करना विफल रहा; 1 चैट शेष रह सकती है। कृपया पुनः प्रयास करें।",
      storageClearFailed:
        "एक स्टोरेज साफ़ करना विफल रहा; {count} चैट शेष रह सकती हैं। कृपया पुनः प्रयास करें।",
      failedToClearChats: "चैट साफ़ करने में विफल",
    },
    data: {
      title: "डेटा",
      backToData: "डेटा पर वापस जाएँ",
      exportFailed: "चैट एक्सपोर्ट नहीं की जा सकीं",
      description:
        "इस डिवाइस पर सहेजे गए चैट इतिहास और अपलोड की गई फ़ाइलें प्रबंधित करें।",
      archivedChats: "संग्रहित चैट",
      archivedChatsDescription:
        "आपने जो चैट संग्रहित की हैं उन्हें देखें और प्रबंधित करें।",
      archivedImages: "संग्रहित छवियाँ",
      archivedImagesDescription: "आपके द्वारा संग्रहित की गई छवियाँ देखें और प्रबंधित करें।",
      archivedVideos: "संग्रहित वीडियो",
      archivedVideosDescription: "आपके द्वारा संग्रहित किए गए वीडियो देखें और प्रबंधित करें।",
      manageAction: "प्रबंधित करें",
      exportArchivedChats: "एक्सपोर्ट करें",
      exportingArchivedChats: "एक्सपोर्ट हो रहा है...",
      exportedOneArchivedChat: "1 संग्रहित चैट एक्सपोर्ट की गई",
      exportedArchivedChatCount: "{count} संग्रहित चैट एक्सपोर्ट की गईं",
      noArchivedChatsToExport: "एक्सपोर्ट करने के लिए कोई संग्रहित चैट नहीं।",
      failedToExportArchivedChats: "संग्रहित चैट एक्सपोर्ट नहीं हो सकीं",
      archiveAllChats: "सभी चैट संग्रहित करें",
      archiveAllChatsDescription:
        "हाल के और प्रोजेक्ट में मौजूद हर चैट को संग्रह में ले जाता है।",
      noChatsToArchive: "संग्रहित करने के लिए कोई चैट नहीं।",
      archiveAllAction: "सभी संग्रहित करें",
      archivingAction: "संग्रहित हो रहा है...",
      archiveAllChatsTitle: "सभी चैट संग्रहित करें?",
      archiveAllChatsConfirmDescription:
        "इस डिवाइस की हर चैट को संग्रह में ले जाता है। संग्रहित चैट उपलब्ध रहती हैं और उन्हें कभी भी संग्रह से बाहर लाया जा सकता है।",
      archivedAllChats: "सभी चैट संग्रहित कर दी गईं",
      archivedOneChat: "1 चैट संग्रहित की गई",
      archivedChatCount: "{count} चैट संग्रहित की गईं",
      failedToArchiveChats: "चैट संग्रहित नहीं हो सकीं",
      confirmBeforeDeleting: "हटाने से पहले पुष्टि करें",
      confirmBeforeDeletingDescription:
        "चैट हटाने से पहले पुष्टि मांगता है। तुरंत हटाने के लिए इसे बंद करें।",
      filesSection: "फ़ाइलें",
      uploadedFiles: "अपलोड की गई फ़ाइलें",
      uploadedFilesDescription:
        "चैट, प्रोजेक्ट और नॉलेज बेस में अपलोड की गई फ़ाइलें देखें और प्रबंधित करें।",
      fineTuneExport: "चैट को ट्रेनिंग डेटा के रूप में उपयोग करें",
      fineTuneExportDescription:
        "अपनी चैट से फाइन-ट्यूनिंग के लिए JSONL डेटासेट बनाएं। इसे ट्रेनिंग में लोड करें, रेसिपी में सुधारें, या एक्सपोर्ट करें।",
      fineTuneExportAction: "JSONL एक्सपोर्ट करें",
      fineTuneRunAction: "चलाएं",
      fineTuneExportingAction: "एक्सपोर्ट हो रहा है...",
      fineTuneOpenRecipesAction: "रेसिपी में खोलें",
      fineTuneOpeningRecipesAction: "खुल रहा है...",
      fineTuneTrainAction: "ट्रेनिंग टैब में लोड करें",
      fineTuneTrainingAction: "लोड हो रहा है...",
      fineTuneExportFailed: "ट्रेनिंग डेटा एक्सपोर्ट नहीं हो सका",
      fineTuneRecipeFailed: "चैट रेसिपी में नहीं खुल सकीं",
      fineTuneTrainFailed: "ट्रेनिंग टैब में डेटासेट लोड नहीं हो सका",
    },
    connections: {
      title: "कनेक्शन",
      description: "प्रदाता और बाहरी कनेक्शन प्रबंधित करें।",
    },
    apiKeys: {
      title: "API",
      description: "OpenAI-संगत API के माध्यम से Unsloth तक पहुंचें।",
      readDocs: "API दस्तावेज़ पढ़ें",
      noAccess: "अभी तक कोई API एक्सेस नहीं।",
      accessTokens: "एक्सेस टोकन",
      loadError: "API एक्सेस लोड नहीं किया जा सका।",
      createError: "एक्सेस टोकन नहीं बनाया जा सका।",
      revokeError: "एक्सेस टोकन रद्द नहीं किया जा सका।",
      never: "कभी नहीं",
      tokenNamePlaceholder: "टोकन का नाम (जैसे, production)",
      newAccessTokenName: "नए एक्सेस टोकन का नाम",
      createToken: "टोकन बनाएँ",
      creating: "बनाया जा रहा है...",
      newTokenCreated: "नया एक्सेस टोकन बनाया गया",
      accessTokenCopied: "एक्सेस टोकन कॉपी किया गया",
      copyAccessToken: "एक्सेस टोकन कॉपी करें",
      copyNow: "अभी कॉपी करें। यह दोबारा नहीं दिखाया जाएगा।",
      usageExamples: "उपयोग उदाहरण",
      usageTools: "टूल",
      exampleCurlTools: "curl + टूल",
      examplePythonTools: "Python + टूल",
      exampleJavaScriptTools: "JavaScript + टूल",
      exampleCurlAdvanced: "curl + उन्नत",
      examplePythonAdvanced: "Python + उन्नत",
      exampleJavaScriptAdvanced: "JavaScript + उन्नत",
      osUnix: "Linux / macOS / WSL",
      osWindows: "Windows",
      secureHttps: "सुरक्षित HTTPS",
      secureHttpsHint:
        "0.0.0.0 वाला पोर्ट अब भी विश्व स्तर पर पहुँचा जा सकता है। पूरी सुरक्षा के लिए Unsloth को --secure के साथ शुरू करें, ताकि केवल यह HTTPS लिंक उपलब्ध हो।",
      copyTunnelUrl: "टनल URL कॉपी करें",
      copySnippet: "स्निपेट कॉपी करें",
      copy: "कॉपी करें",
      copied: "कॉपी किया गया",
      setupDocs: "सेटअप दस्तावेज़:",
      codingAgents: "कोडिंग एजेंट",
      codingAgentsHint:
        "इस सर्वर से कनेक्ट करके कोडिंग एजेंट चलाएँ। यह लोड किए गए मॉडल का उपयोग करता है। स्थानीय सर्वर अपने-आप API कुंजी बनाता है, जबकि रिमोट सर्वर उसे कमांड में शामिल करता है।",
      codingAgentsSwap: "claude को codex, openclaw, opencode, या hermes से बदलें।",
      codingAgentDetected: "इस मशीन पर इंस्टॉल है",
      codingAgentsDetectedHint: "इस मशीन पर मिले एजेंट: {agents}।",
      relativeNever: "कभी नहीं",
      relativeJustNow: "अभी",
      expired: "समाप्त",
      today: "आज",
      created: "बनाया गया: {value}",
      used: "उपयोग किया गया: {value}",
      expires: "समाप्त होता है {value}",
      actionsFor: "{name} के लिए कार्रवाइयां",
      copyPrefix: "प्रीफ़िक्स कॉपी करें",
      revokeToken: "टोकन रद्द करें",
      revokeTitle: "क्या “{name}” एक्सेस टोकन रद्द करें?",
      revokeDescription:
        "इस टोकन का उपयोग करने वाले ऐप तुरंत एक्सेस खो देंगे। इसे पूर्ववत नहीं किया जा सकता।",
      revokeAction: '"{name}" रद्द करें',
      revoking: "रद्द किया जा रहा है...",
      usageNoModel:
        "चलाने योग्य उदाहरण देखने के लिए कोई मॉडल लोड या डाउनलोड करें। इस सर्वर के पास अभी बताने को कोई मॉडल नहीं है।",
    },
    about: {
      title: "परिचय",
      description: "दस्तावेज़, रिलीज़ नोट्स, प्रतिक्रिया, और बिल्ड जानकारी।",
      studioVersion: "Unsloth संस्करण",
      packageVersion: "पैकेज संस्करण",
      desktopAppVersion: "डेस्कटॉप ऐप संस्करण",
      desktopAppVersionUnavailable: "उपलब्ध नहीं",
      llamaCppVersion: "llama.cpp संस्करण",
      hardware: "हार्डवेयर",
      gpu: "GPU",
      cuda: "CUDA",
      rocm: "ROCm",
      xpu: "XPU",
      updates: "अपडेट",
      help: "सहायता",
      documentation: "दस्तावेज़",
      releaseNotes: "रिलीज़ नोट्स",
      whatsNew: "नया क्या है",
      feedback: "प्रतिक्रिया",
      reportIssue: "समस्या रिपोर्ट करें",
      license: {
        sectionTitle: "लाइसेंस",
        studioLabel: "Unsloth",
        studioLicense: "AGPL-3.0",
        studioDescription: "GNU AGPL v3.0 के तहत ओपन सोर्स।",
        libraryLabel: "Unsloth Core",
        libraryLicense: "Apache-2.0",
        libraryDescription: "Apache 2.0 के तहत लाइसेंस प्राप्त।",
      },
      dangerZone: "खतरनाक क्षेत्र",
      shutDownStudio: "Unsloth शट डाउन करें",
      shutDownStudioDescription:
        "Unsloth सर्वर को रोकता है और आपके सत्र को समाप्त करता है।",
      shutDown: "शट डाउन करें",
      update: {
        title: "Unsloth अपडेट करें",
        commandText: "{label} का टेक्स्ट",
        copied: "कॉपी किया गया",
        copyCommand: "कमांड कॉपी करें",
        commandCopied: "{label} कॉपी किया गया",
        copyNamedCommand: "{label} कॉपी करें",
        checkingInstall: "जांच रहे हैं कि Unsloth कैसे इंस्टॉल किया गया था...",
        installIntro: "Unsloth इंस्टॉल या अपडेट करने के लिए:",
        localUpdateHeading: "स्थानीय अपडेट",
        installCommandUnix: "macOS/Linux इंस्टॉल कमांड",
        installCommandWindows: "Windows इंस्टॉल कमांड",
        localInstallDetected:
          "स्थानीय इंस्टॉल का पता चला। इसे PyPI से बदलने से बचने के लिए अपने मूल checkout से अपडेट करें।",
        pullThenUpdate:
          "नवीनतम परिवर्तन खींचें, फिर स्थानीय इंस्टॉलर चलाएं:",
        gitPullCommand: "git pull कमांड",
        localInstallerCommand: "स्थानीय इंस्टॉलर कमांड",
        sourceInstallDetected:
          "सोर्स या VCS पैकेज इंस्टॉल का पता चला। मूल स्थानीय पथ या Git URL से पुनः इंस्टॉल करें।",
        repoCheckoutFallback:
          "यदि आपके पास अभी भी रेपो checkout है, तो उससे स्थानीय इंस्टॉलर चलाएं:",
        restartAfterUpdate: "अपडेट करने के बाद Unsloth को पुनः आरंभ करें।",
        desktopManaged:
          "डेस्कटॉप ऐप नए ऐप संस्करणों की अपने-आप जाँच करता है। आप यहाँ कभी भी अपडेट की जाँच कर सकते हैं या अपडेट कर सकते हैं।",
        desktopReady: "डेस्कटॉप ऐप अपडेट",
        desktopReadyDescription:
          "जाँचें कि डेस्कटॉप ऐप का कोई नया संस्करण उपलब्ध है या नहीं।",
        desktopChecking: "अपडेट की जाँच हो रही है",
        desktopCheckingDescription:
          "इसमें आम तौर पर कुछ सेकंड लगते हैं।",
        desktopAvailable: "डेस्कटॉप ऐप {version} उपलब्ध है",
        desktopAvailableDescription:
          "अभी अपडेट करें। अपडेट पूरा होने पर डेस्कटॉप ऐप फिर से शुरू होगा।",
        desktopExternalServer:
          "जिस टर्मिनल से सर्वर शुरू किया गया था, उसमें `unsloth studio update` चलाएँ।",
        desktopManualInstall:
          "नवीनतम Linux पैकेज इंस्टॉल करने के लिए रिलीज़ पेज खोलें।",
        desktopCheckFailed: "अपडेट की जाँच नहीं हो सकी",
        desktopCheckFailedDescription:
          "अपना कनेक्शन जाँचें और फिर से कोशिश करें।",
        desktopCurrent: "डेस्कटॉप ऐप नवीनतम संस्करण पर है",
        desktopCurrentDescription: "Unsloth अपने-आप जाँच करता रहेगा।",
        checkForUpdates: "अपडेट की जाँच करें",
        checkAgain: "फिर से जाँचें",
        retryCheck: "फिर से कोशिश करें",
        checking: "जाँच हो रही है...",
        updateNow: "अभी अपडेट करें",
        openReleasePage: "रिलीज़ पेज खोलें",
        unknownInstall:
          "यह पता नहीं लगाया जा सका कि Unsloth कैसे इंस्टॉल किया गया था। इंस्टॉलर या PyPI इंस्टॉल के लिए, ऊपर दिए गए कमांड का उपयोग करें।",
        localCheckout:
          "स्थानीय checkout इंस्टॉल के लिए, उस checkout से स्थानीय इंस्टॉलर चलाएं:",
        docs: "इंस्टॉल दस्तावेज़:",
        docsInstall: "इंस्टॉलेशन",
        docsUpdating: "अपडेट करना",
        docsMac: "Mac",
        docsWindows: "Windows",
      },
    },
  },
  studio: {
    imageTraining: "इमेज ट्रेनिंग",
    goToImageTraining: "इमेज ट्रेनिंग पर जाएं",
    routeTitle: "ट्रेनिंग",
    wizard: {
      modelTitle: "मॉडल",
      modelDescription: "मॉडल और ट्रेनिंग विधि चुनें",
      datasetTitle: "डेटासेट",
      datasetDescription: "ट्रेनिंग डेटा चुनें या अपलोड करें",
      paramsTitle: "पैरामीटर",
      paramsDescription: "ट्रेनिंग पैरामीटर कॉन्फ़िगर करें",
      configTitle: "कॉन्फ़िगरेशन",
      configDescription: "कॉन्फ़िगरेशन सहेजें और लोड करें",
      modelLabel: "मॉडल",
      methodLabel: "विधि",
      datasetLabel: "डेटासेट",
      modelTooltip: "वह बेस मॉडल जिसे आप फ़ाइन-ट्यून करना चाहते हैं।",
      methodTooltip: "मॉडल को कैसे ट्रेन किया जाता है। LoRA और QLoRA सभी वेट्स के बजाय छोटे अडैप्टर अपडेट करते हैं।",
      datasetTooltip: "मॉडल को फ़ाइन-ट्यून करने के लिए उपयोग किया जाने वाला ट्रेनिंग डेटा।",
      hfTokenDescription:
        "गेटेड या निजी मॉडल और डेटासेट के लिए आवश्यक।",
      uploadLocalLabel: "या कोई स्थानीय फ़ाइल अपलोड करें",
      sourceBrowse: "ब्राउज़ करें",
      releaseToUpload: "अपलोड करने के लिए छोड़ें",
      loadYaml: "YAML लोड करें",
      saveYaml: "YAML सहेजें",
      resetDefaults: "डिफ़ॉल्ट पर रीसेट करें",
      cachedModelGoneTitle: "कैश किया गया मॉडल अब उपलब्ध नहीं है",
      cachedModelGoneDescription:
        "मॉडल फ़ाइलें अब इस डिवाइस पर नहीं हैं, इसलिए ट्रेनिंग उन्हें दोबारा डाउनलोड करेगी।",
      cachedDatasetGoneTitle: "कैश किया गया डेटासेट अब उपलब्ध नहीं है",
      cachedDatasetGoneDescription:
        "डेटासेट फ़ाइलें अब इस डिवाइस पर नहीं हैं, इसलिए ट्रेनिंग उन्हें दोबारा डाउनलोड करेगी।",
    },
    preview: {
      title: "रन पूर्वावलोकन",
      ready: "तैयार",
      notReady: "तैयार नहीं",
      modelPending: "मॉडल लंबित",
      datasetPending: "डेटासेट लंबित",
      method: "विधि",
      length: "लंबाई",
      stepZero: "{count} स्टेप्स",
      step: "{count} स्टेप",
      stepTwo: "{count} स्टेप्स",
      stepFew: "{count} स्टेप्स",
      stepMany: "{count} स्टेप्स",
      steps: "{count} स्टेप्स",
      epochZero: "{count} एपॉक",
      epoch: "{count} एपॉक",
      epochTwo: "{count} एपॉक",
      epochFew: "{count} एपॉक",
      epochMany: "{count} एपॉक",
      epochs: "{count} एपॉक",
      batch: "बैच",
      context: "कॉन्टेक्स्ट",
      lr: "LR",
      hardware: "हार्डवेयर",
      noGpu: "कोई GPU नहीं मिला",
      hfToken: "HF टोकन",
      saved: "सहेजा गया",
      notSet: "सेट नहीं",
      files: "फ़ाइलें",
      model: "मॉडल",
      dataset: "डेटासेट",
      downloadsOnStart: "शुरू होने पर डाउनलोड होगा",
      continuesOnStart: "शुरू होने पर जारी रहेगा",
      noticeModelDownload:
        "यह मॉडल अभी इस डिवाइस पर नहीं है। ट्रेनिंग इसे अपने आप डाउनलोड करेगी।",
      noticeModelPartial:
        "ट्रेनिंग मॉडल लोड करने से पहले उसका अधूरा डाउनलोड पूरा करेगी।",
      noticeDatasetDownload:
        "यह डेटासेट अभी इस डिवाइस पर नहीं है। ट्रेनिंग इसे अपने आप डाउनलोड करेगी।",
      noticeDatasetPartial:
        "ट्रेनिंग डेटासेट पढ़ने से पहले उसका अधूरा डाउनलोड पूरा करेगी।",
      noticeTransformersUpgrade:
        "इंस्टॉल किया गया कोई भी transformers अभी इस आर्किटेक्चर को सपोर्ट नहीं करता। रन शुरू करने पर पहले transformers {version} इंस्टॉल करने का विकल्प मिलेगा।",
      noticeSixteenBitOnly:
        "यह आर्किटेक्चर 16-बिट LoRA में ट्रेन होता है: इसके लिए 4-बिट उपलब्ध नहीं है, इसलिए रन को QLoRA से कहीं अधिक VRAM चाहिए।",
      noticeInstallSwitchesSixteenBit:
        "मॉडल के अपने कोड को रखने के बजाय वह रिलीज़ इंस्टॉल करने पर यह रन 16-बिट LoRA में बदल जाता है, जिसे QLoRA से कहीं अधिक VRAM चाहिए।",
      advancedSettings: "उन्नत सेटिंग्स",
      defaultAdvancedSettings: "डिफ़ॉल्ट",
      nonDefaultAdvancedSettings: "{count} गैर-डिफ़ॉल्ट",
    },
    datasetPicker: {
      noun: "डेटासेट",
      selectDataset: "डेटासेट चुनें",
      hubPlaceholder: "Hugging Face डेटासेट खोजें...",
      devicePlaceholder: "स्थानीय डेटासेट खोजें...",
      useAsHubDataset: "Hugging Face डेटासेट के रूप में उपयोग करें",
      hfCacheLabel: "HF कैश",
      scanningLocal: "इस डिवाइस पर डेटासेट स्कैन हो रहे हैं…",
      couldntScan: "स्थानीय डेटासेट स्कैन नहीं किए जा सके",
      someLocationsUnscanned:
        "कुछ डेटासेट स्थान स्कैन नहीं किए जा सके।",
      noLocalDatasets:
        "इस डिवाइस पर अभी कुछ नहीं है। Hub से डेटासेट डाउनलोड करें, रेसिपी में बनाएं, या कोई फ़ाइल अपलोड करें।",
      openDataRecipes: "डेटा रेसिपी खोलें",
      searchingHub: "Hugging Face पर खोजा जा रहा है…",
      noDatasetsFound: "कोई डेटासेट नहीं मिला।",
      tokenRejectedTitle: "Hugging Face टोकन अस्वीकार किया गया",
      tokenRejectedBody:
        "सेटिंग्स → सामान्य में अपना टोकन अपडेट करें, फिर पुनः प्रयास करें।",
      hubUnreachable: "Hugging Face तक नहीं पहुंच सके",
      cantUseDataset: "डेटासेट का उपयोग नहीं किया जा सकता",
      reasonInvalidHubId:
        "एक मान्य Hugging Face डेटासेट ID दर्ज करें: रेपो या मालिक/रेपो, जिसमें केवल अक्षर, अंक, ., _ या - हों (हर भाग में अधिकतम 96 वर्ण)।",
      sourceRecipe: "रेसिपी",
      sourceUpload: "अपलोड",
      sourceLocal: "स्थानीय",
    },
    modelPicker: {
      noun: "मॉडल",
      selectModel: "मॉडल चुनें",
      hubPlaceholder: "Hugging Face ID खोजें या पेस्ट करें...",
      devicePlaceholder: "स्थानीय मॉडल खोजें या फ़ोल्डर पथ पेस्ट करें...",
      useAsHubModel: "Hugging Face मॉडल के रूप में उपयोग करें",
      useAsLocalPath: "स्थानीय पथ के रूप में उपयोग करें",
      hfCacheLabel: "HF कैश",
      scanningLocal: "स्थानीय मॉडल स्कैन हो रहे हैं…",
      couldntScan: "स्थानीय मॉडल स्कैन नहीं किए जा सके",
      someLocationsUnscanned: "कुछ स्थानीय स्थान स्कैन नहीं किए जा सके।",
      noLocalModels: "कोई स्थानीय मॉडल नहीं मिला।",
      noLocalModelsHint:
        "ऊपर फ़ोल्डर पथ पेस्ट करें या Hugging Face पर जाएं।",
      searchingHub: "Hugging Face पर खोजा जा रहा है…",
      noModelsFound: "कोई मॉडल नहीं मिला।",
      tokenRejectedTitle: "Hugging Face टोकन अस्वीकार किया गया",
      tokenRejectedBody:
        "सेटिंग्स → सामान्य में अपना टोकन अपडेट करें, फिर पुनः प्रयास करें।",
      hubUnreachable: "Hugging Face तक नहीं पहुंच सके",
      cantUseModel: "मॉडल को ट्रेनिंग के लिए उपयोग नहीं कर सकते",
      reasonTypeMismatch:
        "यह मॉडल पिछले चरण में चुने गए प्रशिक्षण प्रकार से मेल नहीं खाता।",
      reasonEmptyId: "मॉडल ID या स्थानीय मॉडल पथ दर्ज करें।",
      reasonInvalidHubId:
        "एक मान्य Hugging Face मॉडल ID दर्ज करें: रेपो या मालिक/रेपो, जिसमें केवल अक्षर, अंक, ., _ या - हों (हर भाग में अधिकतम 96 वर्ण)।",
      reasonGguf: "GGUF मॉडल ट्रेनिंग के लिए उपयोग नहीं किए जा सकते।",
      reasonAdapter:
        "एडेप्टर आउटपुट को बेस ट्रेनिंग मॉडल के रूप में उपयोग नहीं किया जा सकता।",
      reasonNotTrainable:
        "इस डिवाइस पर मौजूद मॉडल को ट्रेन नहीं किया जा सकता।",
      reasonUnsupportedFormat:
        "यह मॉडल फ़ॉर्मेट ट्रेनिंग के लिए समर्थित नहीं है।",
      vramNeeds: "लगभग {est}GB VRAM चाहिए (GPU: {total}GB)",
      vramTight: "लगभग {est}GB VRAM ({total}GB पर बमुश्किल फिट)",
      vramApprox: "लगभग {est}GB VRAM",
      sourceModelsFolder: "मॉडल फ़ोल्डर",
      sourceHfCache: "HF कैश",
      sourceLmStudio: "LM Studio",
      sourceOllama: "Ollama",
      sourceCustomFolder: "कस्टम फ़ोल्डर",
      sourceLocalModel: "स्थानीय मॉडल",
      vramOomBadge: "OOM",
      vramTightBadge: "कम जगह",
    },
    methods: {
      qlora: {
        label: "QLoRA",
        hint: "4-बिट क्वांटाइज़ेशन। सबसे कम VRAM और सबसे तेज़ शुरुआत।",
        note: "4-बिट",
      },
      lora: {
        label: "LoRA",
        hint: "16-बिट एडेप्टर। गुणवत्ता और मेमोरी का संतुलन।",
        note: "16-बिट",
      },
      full: {
        label: "फुल फ़ाइन-ट्यून",
        hint: "सभी वेट्स को ट्रेन करता है। सर्वोत्तम गुणवत्ता, सबसे अधिक VRAM की आवश्यकता।",
        note: "fp16",
      },
      cpt: {
        label: "निरंतर प्री-ट्रेनिंग",
        hint: "नए डोमेन या भाषाओं के लिए निरंतर प्री-ट्रेनिंग।",
        note: "निरंतर",
      },
    },
    subtitles: {
      configure: "कॉन्फ़िगर करें और ट्रेनिंग शुरू करें",
      trainingInProgress: "ट्रेनिंग जारी है",
      viewPastRuns: "पिछले ट्रेनिंग रन देखें",
      viewingPastRun: "पिछला रन देख रहे हैं",
    },
    tabs: {
      configure: "कॉन्फ़िगर करें",
      currentRun: "वर्तमान रन",
      history: "इतिहास",
    },
    loadingRuntime: "ट्रेनिंग रनटाइम लोड हो रहा है...",
    checkingSupport: "इस मशीन पर ट्रेनिंग सपोर्ट की जाँच हो रही है...",
    backToHistory: "इतिहास पर वापस जाएं",
    dataset: {
      selectors: {
        subset: "सबसेट",
        subsetTooltip: "उपयोग करने के लिए डेटासेट का सबसेट (कॉन्फ़िगरेशन) चुनें।",
        trainSplit: "ट्रेनिंग स्प्लिट",
        trainSplitTooltip: "ट्रेनिंग के लिए उपयोग होने वाला स्प्लिट चुनें।",
        evaluationSplit: "मूल्यांकन स्प्लिट",
        evaluationSplitTooltip:
          "मूल्यांकन के लिए उपयोग होने वाला स्प्लिट चुनें। कोई नहीं का अर्थ है कि ट्रेनिंग के दौरान मूल्यांकन नहीं होगा।",
        selectSubset: "सबसेट चुनें...",
        selectSplit: "स्प्लिट चुनें...",
        none: "कोई नहीं",
        loading: "डेटासेट कॉन्फ़िगरेशन और स्प्लिट लोड हो रहे हैं...",
        manualTitle: "डेटासेट विकल्प मैन्युअल रूप से दर्ज करें",
        manualDescription:
          "उपयोग करने के लिए सटीक Hugging Face कॉन्फ़िगरेशन और स्प्लिट नाम दर्ज करें।",
        manualSubsetPlaceholder: "वैकल्पिक कॉन्फ़िगरेशन नाम",
        manualRequired: "ट्रेनिंग स्प्लिट आवश्यक है।",
        manualTooLong: "128 या उससे कम वर्णों का उपयोग करें।",
        manualInvalid: "इस मान में असमर्थित वर्ण हैं।",
      },
      sourceAriaLabel: "डेटासेट स्रोत",
      localDataset: "स्थानीय डेटासेट",
      localDatasetRows: " / {count} पंक्तियां",
      huggingFaceDataset: "Hugging Face डेटासेट",
      localDatasetMetadata: "स्थानीय डेटासेट मेटाडेटा",
      dataRecipeOutput: "Data Recipe आउटपुट।",
      rows: "पंक्तियां",
      columns: "कॉलम",
      batches: "बैच",
      updated: "अपडेट किया गया",
      evalDataset: "Eval डेटासेट",
      uploading: "अपलोड हो रहा है...",
      uploadEvalFile: "eval फ़ाइल अपलोड करें",
      fileTooLarge: "फ़ाइल बहुत बड़ी है",
      fileTooLargeDescription:
        "{file} का आकार {size} है। ट्रेनिंग अपलोड की अधिकतम सीमा {limit} है।",
      documentRedirect: {
        title: "इस फ़ाइल को पहले रूपांतरित करना होगा",
        genericFile: "यह फ़ाइल",
        description:
          "{file} स्रोत सामग्री है, ट्रेनिंग के लिए तैयार डेटासेट नहीं। दस्तावेज़ को डेटासेट में बदलने के लिए Data Recipes का उपयोग करें, फिर फ़ाइन-ट्यूनिंग के लिए यहां लौटें।",
        nextStepTitle: "अगला सुझाया गया कदम",
        nextStepDescription:
          "Learning Recipes खोलें और PDF grounded QA जैसी दस्तावेज़-आधारित रेसिपी से शुरू करें।",
        openAction: "Learning Recipes खोलें",
      },
      evalDatasetDescription:
        "वैकल्पिक। यदि प्रदान नहीं किया गया, तो ट्रेनिंग डेटा से एक छोटा हिस्सा अलग किया जाएगा।",
      advanced: "उन्नत",
      targetFormat: "लक्ष्य प्रारूप",
      targetFormatTooltip:
        "आपके ट्रेनिंग डेटा का प्रारूप। ऑटो-डिटेक्ट अधिकांश डेटासेट के लिए काम करता है।",
      streamingInfoAriaLabel: "डेटासेट स्ट्रीमिंग की जानकारी",
      streaming: {
        label: "स्ट्रीमिंग चालू करें",
        description:
          "Hugging Face टेक्स्ट डेटासेट को डाउनलोड करने के बजाय स्ट्रीम करें।",
        unavailable: "स्ट्रीमिंग उपलब्ध नहीं है। इसे चालू करने के लिए:",
        completionsUnavailable:
          "डेटासेट स्ट्रीमिंग चालू होने पर उपलब्ध नहीं है।",
        blockers: {
          source:
            "Hugging Face डेटासेट का उपयोग करें (स्थानीय अपलोड या S3 स्रोत का नहीं)।",
          maxSteps:
            "अधिकतम स्टेप्स > 0 सेट करें — स्ट्रीमिंग डेटासेट की लंबाई ज्ञात नहीं होती।",
          trainOnCompletions: '"केवल असिस्टेंट completions" बंद करें।',
          evalSplit:
            "एक अलग eval स्प्लिट चुनें — मूल्यांकन चालू है, लेकिन अलग eval स्प्लिट सेट नहीं है।",
          visionModel: "विज़न मॉडल स्ट्रीमिंग का समर्थन नहीं करते।",
          audioModel: "ऑडियो मॉडल स्ट्रीमिंग का समर्थन नहीं करते।",
          embeddingModel:
            "एम्बेडिंग मॉडल स्ट्रीमिंग का समर्थन नहीं करते (ट्रेनिंग के लिए पूरा डेटासेट चाहिए)।",
          imageDataset:
            "यह डेटासेट इमेज वाला लगता है, जिसे स्ट्रीम नहीं किया जा सकता।",
          audioDataset:
            "यह डेटासेट ऑडियो वाला लगता है, जिसे स्ट्रीम नहीं किया जा सकता।",
          appleSilicon:
            "Apple Silicon (MLX) पर अभी स्ट्रीमिंग समर्थित नहीं है।",
        },
        options: {
          trainOnCompletions: "केवल असिस्टेंट completions",
          evaluation: "मूल्यांकन (एक अलग eval स्प्लिट चाहिए)",
        },
        notifications: {
          turnedOffMaxSteps:
            "स्ट्रीमिंग बंद की गई: स्ट्रीमिंग के लिए अधिकतम स्टेप्स की निश्चित संख्या > 0 चाहिए।",
          adjusted:
            "स्ट्रीमिंग के लिए सेटिंग्स बदली गईं। असंगत विकल्प बंद किए गए: {options}।",
          needsMaxSteps:
            "स्ट्रीमिंग के लिए अधिकतम स्टेप्स की निश्चित संख्या चाहिए (स्ट्रीमिंग डेटासेट की लंबाई ज्ञात नहीं होती)। पहले अधिकतम स्टेप्स > 0 सेट करें।",
          enabledAdjusted:
            "स्ट्रीमिंग चालू की गई। असंगत विकल्प बंद किए गए: {options}।",
          disabledForDetectedModality:
            "स्ट्रीमिंग बंद कर दी गई क्योंकि इमेज और ऑडियो डेटासेट को पूरा डाउनलोड करना आवश्यक है। सेटिंग की समीक्षा करें, फिर ट्रेनिंग दोबारा शुरू करें।",
        },
      },
      auto: "स्वतः",
      rawText: "कच्चा टेक्स्ट",
      trainSplitStart: "ट्रेन स्प्लिट प्रारंभ",
      trainSplitStartTooltip:
        "एक प्रारंभ पंक्ति इंडेक्स (समावेशी, 0-आधारित) निर्दिष्ट करके केवल अपने ट्रेनिंग स्प्लिट के उपसमूह पर ट्रेन करें। पहली पंक्ति से शुरू करने के लिए खाली छोड़ें।",
      trainSplitEnd: "ट्रेन स्प्लिट समाप्त",
      trainSplitEndTooltip:
        "ट्रेनिंग स्प्लिट से शामिल करने के लिए अंतिम पंक्ति इंडेक्स (समावेशी, 0-आधारित)। उदाहरण के लिए, पहली 100 पंक्तियों पर ट्रेन करने के लिए प्रारंभ को 0 और समाप्त को 99 सेट करें। सभी शेष पंक्तियों का उपयोग करने के लिए खाली छोड़ें।",
      endPlaceholder: "समाप्त",
      clear: "साफ़ करें",
      dropFileOrClick: "यहां 1 फ़ाइल छोड़ें या अपलोड करने के लिए क्लिक करें",
      uploadDetails: "अपलोड विवरण",
      uploadDetailsTooltip:
        "प्रति फ़ाइल अधिकतम {limit}। PDF, DOCX और TXT ट्रेनिंग के लिए तैयार डेटासेट नहीं हैं, इसलिए पहले उन्हें रेसिपी में बदलें।",
      viewDataset: "डेटासेट देखें",
      uploadFailed: "अपलोड विफल",
      unknownError: "अज्ञात त्रुटि",
      unsupportedFileType: "असमर्थित फ़ाइल प्रकार",
      uploadOneFileType: "एक {types} फ़ाइल अपलोड करें।",
      datasetUploaded: "डेटासेट अपलोड किया गया",
      evalDatasetUploaded: "Eval डेटासेट अपलोड किया गया",
      uploadOneFileAtATime: "एक बार में एक फ़ाइल अपलोड करें",
      uploadSingleFileDescription:
        "ट्रेनिंग डेटासेट अपलोड एक ही फ़ाइल स्वीकार करता है।",
      previewLoadingHuggingFace:
        "Hugging Face से डेटासेट पूर्वावलोकन प्राप्त किया जा रहा है...",
      previewLoading: "पूर्वावलोकन लोड हो रहा है...",
      mappingRequirements: {
        audioAndText: "ऑडियो और टेक्स्ट",
        imageAndText: "इमेज और टेक्स्ट",
        instructionAndOutput: "निर्देश और आउटपुट",
        humanAndGpt: "ह्यूमन और GPT",
        userAndAssistant: "यूज़र और असिस्टेंट",
      },
      mappingStatus: {
        heuristicTitle: "ह्यूरिस्टिक से पहचानी गई मैपिंग",
        readyTitle: "मैपिंग तैयार है",
        requiredTitle: "डेटासेट कॉलम मैप करें",
        heuristicDescription:
          "हमने ह्यूरिस्टिक का उपयोग करके नीचे दी गई कॉलम मैपिंग अपने आप पहचानी है। कॉलम हेडर के ड्रॉपडाउन से इसकी समीक्षा और बदलाव करें, या बेहतर मैपिंग के लिए AI सहायता का उपयोग करें।",
        readyDescription: "सब ठीक है। हम इस डेटासेट को अपने आप बदल देंगे।",
        requiredDescription:
          "हेडर के ड्रॉपडाउन का उपयोग करके कॉलम को भूमिकाएँ दें। कम से कम {required} असाइन करें।",
      },
      s3: {
        title: "S3 कॉन्फ़िगरेशन",
        description:
          "Amazon S3 से .parquet, .json, .jsonl, या .csv डेटासेट लोड करें",
        bucket: "बकेट नाम",
        bucketPlaceholder: "my-training-data-bucket",
        region: "AWS क्षेत्र",
        regionPlaceholder: "us-east-1",
        prefix: "पथ प्रीफ़िक्स",
        prefixPlaceholder: "datasets/whisper/",
        accessKeyId: "एक्सेस Key ID",
        accessKeyIdPlaceholder: "AKIAIOSFODNN7EXAMPLE",
        secretAccessKey: "सीक्रेट एक्सेस Key",
        secretAccessKeyPlaceholder: "आपकी AWS सीक्रेट एक्सेस key",
        useIamRole: "IAM Role का उपयोग करें",
      },
    },
    params: {
      mode: {
        simple: "सरल",
        advanced: "उन्नत",
        ariaLabel: "पैरामीटर मोड",
      },
      projectName: "प्रोजेक्ट नाम",
      optional: "वैकल्पिक",
      projectNameDescription:
        "ट्रेनिंग आउटपुट फ़ोल्डर नामों, एक्सपोर्ट डिफ़ॉल्ट, और इतिहास में उपयोग किया जाता है।",
      loraSettings: "LoRA सेटिंग्स",
      trainingHyperparameters: "ट्रेनिंग हाइपरपैरामीटर",
      maxSteps: "अधिकतम स्टेप्स",
      epochs: "एपॉक",
      useMaxSteps: "अधिकतम स्टेप्स का उपयोग करें",
      useEpochs: "एपॉक का उपयोग करें",
      maxStepsTooltip: "कुल ऑप्टिमाइज़र स्टेप्स को ओवरराइड करें।",
      epochsTooltip: "डेटासेट पर पूर्ण पास की संख्या।",
      contextLength: "कॉन्टेक्स्ट लंबाई",
      contextLengthTooltip: "प्रति ट्रेनिंग सैंपल अधिकतम टोकन संख्या।",
      customContextLength: "एक कस्टम मान दर्ज करें",
      learningRate: "लर्निंग रेट",
      learningRateTooltip:
        "वेट अपडेट के लिए स्टेप साइज़। कम मान धीमी लेकिन अधिक स्थिर ट्रेनिंग करते हैं।",
      learningRateDescription:
        "अनुशंसित: LoRA के लिए 2e-4, CPT के लिए 5e-5, फुल फ़ाइन-ट्यून के लिए 2e-5",
      embeddingLearningRate: "एम्बेडिंग लर्निंग रेट",
      embeddingLearningRateTooltip:
        "केवल तब उपयोग किया जाता है जब CPT embed_tokens को ट्रेन कर रहा हो। एम्बेडिंग LoRA वेट्स की तुलना में अधिक आसानी से अस्थिर हो जाती हैं, इसलिए उन्हें आमतौर पर एक छोटी LR की आवश्यकता होती है। lr/10 उपयोग करने के लिए खाली छोड़ें; सामान्य कार्यशील सीमा मुख्य LR से 2x-10x छोटी है। इसे केवल तभी बढ़ाएं जब शब्दावली या डोमेन-टोकन अनुकूलन बहुत धीमा हो।",
      rank: "Rank",
      rankTooltip:
        "लो-रैंक मैट्रिक्स का आयाम। अधिक = अधिक क्षमता।",
      alpha: "Alpha",
      alphaTooltip: "LoRA अपडेट के लिए स्केलिंग फ़ैक्टर। आमतौर पर rank का 2x।",
      dropout: "Dropout",
      dropoutTooltip:
        "ओवरफ़िटिंग कम करने के लिए LoRA लेयर्स के लिए dropout प्रायिकता।",
      visionLayers: "विज़न लेयर्स",
      languageLayers: "लैंग्वेज लेयर्स",
      attentionModules: "अटेंशन मॉड्यूल",
      mlpModules: "MLP मॉड्यूल",
      targetModules: "लक्ष्य मॉड्यूल",
      enableLora: "LoRA सक्षम करें",
      trainWithLora: "LoRA के साथ ट्रेन करें",
      stableRank: "स्थिर Rank",
      memoryEfficient: "मेमोरी कुशल",
      weightDecomposed: "भार-विघटित",
      notSupportedAppleSilicon: "Apple Silicon पर समर्थित नहीं",
      optimization: "ऑप्टिमाइज़ेशन",
      schedule: "शेड्यूल",
      memory: "मेमोरी",
      optimizer: "ऑप्टिमाइज़र",
      optimizerTooltip:
        "ऑप्टिमाइज़ेशन एल्गोरिदम। 8-बिट वेरिएंट मेमोरी उपयोग कम करते हैं। विज़न मॉडल के लिए Fused अनुशंसित है।",
      optimizerTooltipMlx:
        "ऑप्टिमाइज़ेशन एल्गोरिदम। AdamW डिफ़ॉल्ट है। Lion कम मेमोरी उपयोग करता है, लेकिन आम तौर पर कम लर्निंग रेट की आवश्यकता होती है।",
      lrScheduler: "LR शेड्यूलर",
      lrSchedulerTooltip:
        "ट्रेनिंग के दौरान लर्निंग रेट कैसे बदलता है। Linear स्थिर रूप से घटता है; cosine एक वक्र में घटता है।",
      optimizerOptions: {
        adamw8bit: "AdamW 8-bit",
        pagedAdamw8bit: "Paged AdamW 8-bit",
        adamwBnb8bit: "AdamW BNB 8-bit",
        pagedAdamw32bit: "Paged AdamW 32-bit",
        adamwTorch: "AdamW (PyTorch)",
        adamwTorchFused: "AdamW (PyTorch Fused)",
      },
      lrSchedulerOptions: {
        linear: "Linear",
        cosine: "Cosine",
      },
      batchSize: "बैच साइज़",
      batchSizeTooltip: "प्रति स्टेप प्रोसेस किए गए सैंपल। अधिक होने पर अधिक VRAM उपयोग करता है।",
      gradAccum: "ग्रेडिएंट संचय",
      gradAccumTooltip: "अतिरिक्त VRAM के बिना बड़े बैच साइज़ का अनुकरण करता है।",
      weightDecay: "वेट डिके",
      weightDecayTooltip: "ओवरफ़िटिंग रोकने के लिए L2 रेगुलराइज़ेशन।",
      warmupSteps: "वार्मअप स्टेप्स",
      warmupStepsTooltip:
        "स्थिरता के लिए ट्रेनिंग की शुरुआत में LR को धीरे-धीरे बढ़ाएं।",
      scheduleEpochsTooltip:
        "डेटासेट पर पूर्ण पास की संख्या। अधिकतम स्टेप्स के अनुसार चलाने के लिए 0 सेट करें।",
      saveSteps: "सेव स्टेप्स",
      saveStepsTooltip: "हर N स्टेप्स पर एक चेकपॉइंट सहेजें। अक्षम करने के लिए 0।",
      evalSteps: "Eval स्टेप्स",
      evalStepsTooltip:
        "मूल्यांकनों के बीच कुल ट्रेनिंग स्टेप्स का अंश (0-1)। मूल्यांकन अक्षम करने के लिए 0 सेट करें। उदा. 0.01 = हर 1% स्टेप्स पर मूल्यांकन करें।",
      seed: "सीड",
      seedTooltip: "पुनरुत्पादन के लिए रैंडम seed।",
      gradCheckpoint: "ग्रेडिएंट चेकपॉइंट",
      gradCheckpointTooltip:
        "एक्टिवेशन की दोबारा गणना करके अतिरिक्त कंप्यूट के बदले मेमोरी बचाएँ।",
      none: "कोई नहीं",
      standard: "मानक",
      enablePacking: "packing सक्षम करें",
      assistantCompletionsOnly: "केवल असिस्टेंट completions",
      readMore: "और पढ़ें",
    },
    training: {
      startTraining: "ट्रेनिंग शुरू करें",
      starting: "शुरू हो रहा है...",
      loadingModel: "मॉडल लोड हो रहा है...",
      checkingDataset: "डेटासेट जांचा जा रहा है...",
      chooseModel: "मॉडल चुनें",
      chooseDataset: "डेटासेट चुनें",
      chooseModelAndDataset: "मॉडल और डेटासेट चुनें",
      modelUnverified:
        "इस मॉडल की सेटिंग्स सत्यापित नहीं की जा सकीं। अपना कनेक्शन या Hugging Face टोकन जांचें, फिर पुनः प्रयास करें।",
      legacyDatasetScriptUnsupported:
        "यह Hub डेटासेट एक पुराने कस्टम स्क्रिप्ट पर निर्भर है और इस ट्रेनिंग फ़्लो में समर्थित नहीं है।",
      hfModelAccessDenied:
        "Hugging Face ने इस मॉडल का एक्सेस अस्वीकार कर दिया। रिपॉज़िटरी एक्सेस वाला मान्य Hugging Face टोकन जोड़ें, आवश्यक एक्सेस शर्तें स्वीकार करें और फिर से कोशिश करें।",
      hfModelVerificationRateLimited:
        "Hugging Face मॉडल सत्यापन की दर सीमित है। थोड़ी देर बाद फिर से कोशिश करें।",
      hfModelVerificationFailed:
        "Hugging Face मॉडल सत्यापित नहीं किया जा सका। रिपॉज़िटरी ID और अपना एक्सेस टोकन जाँचें।",
      hfModelMetadataUnavailable:
        "Hugging Face मॉडल मेटाडेटा अस्थायी रूप से उपलब्ध नहीं है। ट्रेनिंग शुरू करने से पहले फिर से कोशिश करें।",
      datasetUnverified:
        "यह सत्यापित नहीं किया जा सका कि डेटासेट इस मॉडल के साथ संगत है। अपना कनेक्शन या Hugging Face टोकन जांचें — ट्रेनिंग शुरू करने पर जांच फिर से की जाएगी।",
      setupChanged:
        "जांच के दौरान ट्रेनिंग सेटअप बदल गया। इसकी समीक्षा करें और फिर से ट्रेनिंग शुरू करें।",
      validation: {
        s3MultimodalUnsupported:
          "S3 डेटासेट अभी विज़न या ऑडियो ट्रेनिंग के लिए समर्थित नहीं हैं।",
        s3BucketRequired: "पहले S3 बकेट का नाम दर्ज करें।",
        s3CredentialsRequired: "S3 एक्सेस कुंजियाँ दें या IAM रोल सक्षम करें।",
        modelRequired: "पहले बेस मॉडल चुनें।",
        learningRatePositive: "शून्य से अधिक लर्निंग रेट दर्ज करें।",
        embeddingLearningRateRange:
          "0 से अधिक और 1 से कम एम्बेडिंग लर्निंग रेट दर्ज करें।",
        hfDatasetRequired: "पहले Hugging Face डेटासेट चुनें।",
        hfDatasetSplitRequired: "पहले ट्रेनिंग स्प्लिट चुनें या दर्ज करें।",
        localDatasetRequired: "पहले स्थानीय डेटासेट चुनें।",
        unsupportedDatasetSource: "असमर्थित डेटासेट स्रोत।",
      },
      startFailed: "ट्रेनिंग शुरू करने में विफल",
      startUnconfirmed:
        "Unsloth यह पुष्टि नहीं कर सका कि ट्रेनिंग शुरू हुई या नहीं। बैकग्राउंड में स्थिति जांची जा रही है।",
      stopFailed: "ट्रेनिंग रोकने में विफल",
      trainingStillActiveTitle: "ट्रेनिंग अभी भी सक्रिय है",
      stopBeforeConfig: "पहले ट्रेनिंग रोकें, फिर कॉन्फ़िगरेशन पर लौटें।",
      resumeFailed: "ट्रेनिंग फिर से शुरू करने में विफल",
      resumeFailedTitle: "ट्रेनिंग फिर से शुरू नहीं की जा सकी",
      resumeUnavailable:
        "केवल उन ट्रेनिंग रन को फिर से शुरू किया जा सकता है जिन्हें रोका गया हो या जो त्रुटि के साथ समाप्त हुई हों और जिनका चेकपॉइंट सहेजा गया हो।",
      uploadConfigTooltip: "एक सहेजा गया YAML कॉन्फ़िग लोड करें",
      saveConfigTooltip: "वर्तमान कॉन्फ़िग को YAML के रूप में डाउनलोड करें",
      resetConfigTooltip: "मॉडल डिफ़ॉल्ट पर रीसेट करें",
      configLoaded: "कॉन्फ़िग लोड हुआ",
      failedToLoadConfig: "कॉन्फ़िग लोड करने में विफल",
      invalidYamlFile: "अमान्य YAML फ़ाइल",
      configTooLarge:
        "प्रशिक्षण कॉन्फ़िगरेशन फ़ाइल बहुत बड़ी है (अधिकतम 1 MiB)।",
      failedToReadFile: "फ़ाइल पढ़ने में विफल",
      failedToSaveConfig: "कॉन्फ़िग सहेजने में विफल",
      parametersReset: "पैरामीटर मॉडल डिफ़ॉल्ट पर रीसेट किए गए",
      audioIncompatible:
        "यह मॉडल ऑडियो का समर्थन नहीं करता। एक ऑडियो-सक्षम मॉडल पर स्विच करें या एक गैर-ऑडियो डेटासेट चुनें।",
      visionIncompatible:
        "टेक्स्ट मॉडल मल्टीमॉडल डेटासेट के साथ संगत नहीं है। एक विज़न मॉडल पर स्विच करें या एक केवल-टेक्स्ट डेटासेट चुनें।",
      cancelTitle: "ट्रेनिंग रद्द करें",
      cancelDescription: "क्या आप वर्तमान ट्रेनिंग रन को रद्द करना चाहते हैं?",
      continueAction: "ट्रेनिंग जारी रखें",
      cancelAction: "ट्रेनिंग रद्द करें",
      stopTitle: "ट्रेनिंग रोकें",
      stopDescription:
        "चुनें कि आप वर्तमान ट्रेनिंग रन को कैसे रोकना चाहते हैं। “रोकें और सहेजें” एक चेकपॉइंट बनाता है, जिससे आप बाद में ट्रेनिंग फिर शुरू कर सकते हैं; बिना सहेजे रोकने पर ट्रेनिंग फिर शुरू नहीं की जा सकती।",
      stopAction: "रोकें",
      stopping: "रोका जा रहा है...",
      stopAndSave: "रोकें और सहेजें",
      compareInChat: "चैट में तुलना करें",
      exportModel: "मॉडल एक्सपोर्ट करें",
      milestone: "मील का पत्थर",
      halfwayDone: "आधा हो गया। ट्रेनिंग 50% पार कर चुकी है।",
      doneNextStep:
        "ट्रेनिंग पूर्ण। अगला चरण: बेस बनाम फ़ाइन-ट्यून किए गए आउटपुट की तुलना करें।",
    },
    history: {
      title: "इतिहास",
      filesDeleted: "फ़ाइलें हटा दी गईं",
      deleteArtifactsLabel: "डिस्क से एडेप्टर फ़ाइलें भी हटाएं",
      deleteArtifactsDescription:
        "सहेजे गए एडेप्टर और चेकपॉइंट सहित रन का आउटपुट फ़ोल्डर हटाता है।",
      deleteArtifactsSharedNote:
        "कोई अन्य रन इस आउटपुट फ़ोल्डर का उपयोग करता है। फ़ाइलें तब तक रखी जाएंगी जब तक इसका उपयोग करने वाला अंतिम रन हटा नहीं दिया जाता।",
      artifactsKeptShared:
        "रन हटा दिया गया। एडेप्टर फ़ाइलें रखी गईं क्योंकि कोई अन्य रन उसी फ़ोल्डर का उपयोग करता है।",
      deleteArtifactsActiveError:
        "इन फ़ाइलों का उपयोग जारी ट्रेनिंग रन कर रहा है। इन्हें हटाने से पहले ट्रेनिंग रोकें।",
      deleteArtifactsFailed:
        "रन हटा दिया गया, लेकिन उसकी फ़ाइलें नहीं हटाई जा सकीं।",
      deleteArtifactsRetainedError:
        "अडैप्टर फ़ाइलें नहीं हटाई जा सकीं, इसलिए ट्रेनिंग रन को इतिहास में रखा गया है।",
      emptyDescription:
        "अभी तक कोई ट्रेनिंग रन नहीं। कॉन्फ़िगर टैब में अपना पहला ट्रेनिंग रन शुरू करें।",
      loadError: "ट्रेनिंग रन लोड करने में विफल",
      deleteError: "ट्रेनिंग रन हटाने में विफल। कृपया पुनः प्रयास करें।",
      retry: "पुनः प्रयास करें",
      loadMore: "और लोड करें",
      loading: "लोड हो रहा है...",
      loadingRun: "ट्रेनिंग रन लोड हो रहा है...",
      runNotFound: "रन नहीं मिला",
      deleteTitle: "ट्रेनिंग रन हटाएं?",
      deleteDescription:
        "यह इस ट्रेनिंग रन और इसके सभी मेट्रिक्स को स्थायी रूप से हटा देगा। इस कार्रवाई को पूर्ववत नहीं किया जा सकता।",
      resumeTraining: "ट्रेनिंग फिर से शुरू करें",
      resuming: "फिर से शुरू हो रहा है...",
      deleteRun: "रन हटाएं",
      loss: "Loss",
      steps: "स्टेप्स",
      lossTrendSparkline: "Loss ट्रेंड स्पार्कलाइन",
      relativeJustNow: "अभी",
      status: {
        completed: "पूर्ण",
        stopped: "रोका गया",
        error: "त्रुटि",
        running: "चल रहा है",
        continued: "जारी रखा गया",
      },
      message: {
        completed: "ट्रेनिंग पूर्ण हुई",
        stopped: "ट्रेनिंग रोकी गई",
        running: "ट्रेनिंग जारी है",
        errored: "ट्रेनिंग में त्रुटि हुई",
      },
      copyPreviewLink: "पूर्वावलोकन लिंक कॉपी करें",
      previewLinkCopied: "पूर्वावलोकन लिंक कॉपी किया गया",
      previewLinkCopyFailed: "लिंक कॉपी नहीं किया जा सका",
    },
    charts: {
      settings: "चार्ट सेटिंग्स",
      settingsDescription:
        "ट्रेनिंग चलते रहने के दौरान चार्ट प्रस्तुति को समायोजित करें।",
      openSettings: "चार्ट सेटिंग्स खोलें",
      viewWindow: "व्यू विंडो",
      viewWindowDescription: "केवल नवीनतम स्टेप्स या पूरा इतिहास दिखाएं।",
      window: "विंडो",
      all: "सभी",
      trainingLoss: "ट्रेनिंग Loss",
      trainingLossDescription: "ओवरले और EMA स्मूदिंग को नियंत्रित करें।",
      smoothing: "स्मूदिंग",
      smoothingDescription: "अधिक स्मूदिंग के लिए दाईं ओर ले जाएं। `0` = कच्चा।",
      showRawLoss: "कच्चा loss दिखाएं",
      showSmoothedLoss: "स्मूद किया गया loss दिखाएं",
      showAverageLine: "औसत रेखा दिखाएं",
      scaleAndCleanup: "स्केल और क्लीनअप",
      linear: "Linear",
      log: "Log",
      noClip: "कोई clip नहीं",
      clipP99: "क्लिप p99",
      clipP95: "क्लिप p95",
      lossAxis: "Loss अक्ष",
      gradientNormAxis: "ग्रेडिएंट नॉर्म अक्ष",
      learningRateAxis: "लर्निंग रेट अक्ष",
      resetDefaults: "डिफ़ॉल्ट रीसेट करें",
      loss: "Loss",
      smoothed: "स्मूद किया गया",
      evalLoss: "मूल्यांकन Loss",
      learningRate: "लर्निंग रेट",
      lr: "LR",
      gradNorm: "ग्रेडिएंट नॉर्म",
      gradientNorm: "ग्रेडिएंट नॉर्म",
      step: "स्टेप {step}",
      averageValue: "औसत {value}",
      waitingForFirstEvaluationStep: "पहले मूल्यांकन स्टेप की प्रतीक्षा में...",
      evaluationNotConfigured: "मूल्यांकन कॉन्फ़िगर नहीं किया गया",
      evalChartWillAppear: "eval_steps तक पहुंचने पर चार्ट दिखाई देगा",
      setEvalDatasetAndSteps:
        "eval loss ट्रैक करने के लिए eval डेटासेट और eval_steps सेट करें",
    },
    progress: {
      title: "ट्रेनिंग प्रगति",
      liveMetrics: "लाइव ट्रेनिंग मेट्रिक्स",
      exportGguf: "GGUF में एक्सपोर्ट करें",
      openConfig: "ट्रेनिंग कॉन्फ़िग खोलें",
      configLabel: "ट्रेनिंग कॉन्फ़िग",
      hyperparams: "हाइपरपैराम्स",
      epochs: "एपॉक",
      batchSize: "बैच साइज़",
      learningRate: "लर्निंग रेट",
      optimizer: "ऑप्टिमाइज़र",
      maxSteps: "अधिकतम स्टेप्स",
      contextLength: "कॉन्टेक्स्ट लंबाई",
      warmupSteps: "वार्मअप स्टेप्स",
      rank: "Rank",
      alpha: "Alpha",
      dropout: "Dropout",
      variant: "वेरिएंट",
      epoch: "एपॉक {value}",
      percentComplete: "{percent}% पूर्ण",
      stepProgress: "स्टेप {current} / {total}",
      loss: "Loss",
      lr: "LR",
      gradNorm: "ग्रेडिएंट नॉर्म",
      project: "प्रोजेक्ट",
      model: "मॉडल",
      method: "विधि",
      elapsed: "बीता समय: {value}",
      eta: "ETA: {value}",
      stepsPerSecond: "{value} स्टेप्स/से",
      noStepsPerSecond: "-- स्टेप्स/से",
      tokens: "टोकन: {value}",
      gpuMonitor: "GPU मॉनिटर",
      live: "लाइव",
      utilization: "उपयोग",
      temperature: "तापमान",
      vram: "VRAM",
      power: "पावर",
      phase: {
        idle: "निष्क्रिय",
        downloadingModel: "मॉडल डाउनलोड हो रहा है",
        downloadingDataset: "डेटासेट डाउनलोड हो रहा है",
        loadingModel: "मॉडल लोड हो रहा है",
        loadingDataset: "डेटासेट लोड हो रहा है",
        configuring: "कॉन्फ़िगर हो रहा है",
        training: "ट्रेनिंग हो रही है",
        finalizing: "मॉडल सेव हो रहा है",
        completed: "पूर्ण",
        error: "त्रुटि",
        stopped: "रोका गया",
      },
    },
    trainingStart: {
      ready: "तैयार",
      downloading: "डाउनलोड हो रहा है",
      preparing: "तैयार हो रहा है",
      left: "{eta} शेष",
      downloaded: "{size} डाउनलोड किया गया",
      terminalStart: "> unsloth ट्रेनिंग शुरू हो रही है...",
      preparingResources: "> मॉडल और डेटासेट तैयार हो रहे हैं...",
      gettingReady: "> हम आपके रन के लिए सब कुछ तैयार कर रहे हैं...",
      waitingForFirstStep: "> {message} | पहले स्टेप की प्रतीक्षा में... ({step})",
      resumingTraining: "ट्रेनिंग फिर से शुरू हो रही है...",
      startingTraining: "ट्रेनिंग शुरू हो रही है...",
      dataset: "डेटासेट",
      datasetStreaming: "डेटासेट: स्ट्रीमिंग (कोई पूर्ण डाउनलोड नहीं)",
      modelWeights: "मॉडल वेट्स",
    },
  },
} satisfies DeepPartialMessageTree<typeof en>;
