diff --git a/web/src/components/settings/GeneralDangerZone.spec.ts b/web/src/components/settings/GeneralDangerZone.spec.ts index c9431a52dc..eef6e80e25 100644 --- a/web/src/components/settings/GeneralDangerZone.spec.ts +++ b/web/src/components/settings/GeneralDangerZone.spec.ts @@ -19,7 +19,7 @@ import { mount, flushPromises } from "@vue/test-utils"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import General from "./General.vue"; -import i18n from "@/locales"; +import i18n, { loadLocaleMessages } from "@/locales"; import { createRouter, createWebHistory } from "vue-router"; vi.mock("@/lib/feedback/Toast/useToast", () => ({ @@ -153,6 +153,10 @@ describe("General settings Danger Zone", () => { ["ja", "危険ゾーン", "管理者のみ"], ["de", "Gefahrenzone", "Nur Administratoren"], ])("renders the panel in %s", async (locale, header, ownerFact) => { + // Only en-gb is bundled; every other locale is a lazy chunk. main.ts awaits + // this before mounting, so mirror that here rather than assuming the + // messages are already registered. + await loadLocaleMessages(locale); i18n.global.locale.value = locale; const wrapper = await mountGeneral(); const text = wrapper @@ -170,6 +174,7 @@ describe("General settings Danger Zone", () => { }); it("resolves the member plural in a locale with no plural distinction", async () => { + await loadLocaleMessages("zh-cn"); i18n.global.locale.value = "zh-cn"; const wrapper = await mountGeneral(); expect( diff --git a/web/src/locales/index.spec.ts b/web/src/locales/index.spec.ts index 043cf36bde..740f8b6c3e 100644 --- a/web/src/locales/index.spec.ts +++ b/web/src/locales/index.spec.ts @@ -14,6 +14,9 @@ // along with this program. If not, see . import { describe, it, expect, vi, beforeEach } from "vitest"; +import { readdirSync } from "node:fs"; +import { dirname, resolve } from "node:path"; +import { fileURLToPath } from "node:url"; import { getLanguage } from "@/utils/cookies"; vi.mock("@/utils/cookies", () => ({ @@ -21,7 +24,40 @@ vi.mock("@/utils/cookies", () => ({ setLanguage: vi.fn(), })); -import { getNumberLocale } from "@/locales/numberFormat"; +import { getNumberLocale, APP_LOCALE_TO_BCP47 } from "@/locales/numberFormat"; +import { localeFileMap } from "@/locales"; + +describe("locale registry stays in sync", () => { + // locales/index.ts code-splits via import.meta.glob("./languages/*.json"), so + // the files on disk decide what gets built. Nothing else enforces that the + // registries agree, and every way they can drift fails silently: + // - file with no localeFileMap entry -> chunk built that nothing can load + // (hi.json sat unreachable this way for ~2 years) + // - localeFileMap entry with no file -> loadLocaleMessages() no-ops and the + // UI quietly renders English + // - localeFileMap entry missing from APP_LOCALE_TO_BCP47 -> numbers format + // as en-GB while the rest of the UI is translated + const languagesDir = resolve( + dirname(fileURLToPath(import.meta.url)), + "languages", + ); + + it("has exactly one localeFileMap entry per language file on disk", () => { + const onDisk = readdirSync(languagesDir) + .filter((f) => f.endsWith(".json")) + .sort(); + const mapped = Object.values(localeFileMap) + .map((f) => `${f}.json`) + .sort(); + expect(onDisk).toEqual(mapped); + }); + + it("formats numbers for every locale it can load", () => { + expect(Object.keys(APP_LOCALE_TO_BCP47).sort()).toEqual( + Object.keys(localeFileMap).sort(), + ); + }); +}); describe("getNumberLocale (locale format unit)", () => { beforeEach(() => { diff --git a/web/src/locales/index.ts b/web/src/locales/index.ts index b1fb420ffc..cfcb924988 100644 --- a/web/src/locales/index.ts +++ b/web/src/locales/index.ts @@ -17,66 +17,42 @@ import { createI18n } from "vue-i18n"; // import from runtime only import { getLanguage } from "../utils/cookies"; import { setBadgeTranslator } from "@/lib/core/Badge/badgeI18n"; -// User defined lang -import zhLocale from "./languages/zh.json"; +// Only the fallback locale (en-gb) is bundled into the main chunk. Every other +// language is code-split and loaded on demand via loadLocaleMessages() so we +// don't ship all 12 locale files (~3.9MB raw) to every user on first load. import enLocale from "./languages/en.json"; -import trLocale from "./languages/tr.json"; -import deLocale from "./languages/de.json"; -import esLocale from "./languages/es.json"; -import frLocale from "./languages/fr.json"; -import itLocale from "./languages/it.json"; -import jaLocale from "./languages/ja.json"; -import koLocale from "./languages/ko.json"; -import nlLocale from "./languages/nl.json"; -import ptLocale from "./languages/pt.json"; -import zhTWLocale from "./languages/zh_TW.json"; -const messages = { - "en-gb": { - ...enLocale, - }, - "zh-cn": { - ...zhLocale, - }, - "tr-turk": { - ...trLocale, - }, - de: { - ...deLocale, - }, - es: { - ...esLocale, - }, - fr: { - ...frLocale, - }, - it: { - ...itLocale, - }, - ja: { - ...jaLocale, - }, - ko: { - ...koLocale, - }, - nl: { - ...nlLocale, - }, - pt: { - ...ptLocale, - }, - "zh-tw": { - ...zhTWLocale, - }, +// Maps an i18n locale code to its source file name (without extension). +// Exported so tests can assert it stays in sync with the files on disk — an +// unmapped file ships as a chunk nothing can load, and a mapping with no file +// silently falls back to en-gb. +export const localeFileMap: Record = { + "en-gb": "en", + "zh-cn": "zh", + "tr-turk": "tr", + de: "de", + es: "es", + fr: "fr", + it: "it", + ja: "ja", + ko: "ko", + nl: "nl", + pt: "pt", + "zh-tw": "zh_TW", }; +// Lazy importers — each locale json becomes its own cacheable chunk. +const localeLoaders = import.meta.glob<{ default: Record }>( + "./languages/*.json", +); + export const getLocale = () => { const cookieLanguage = getLanguage(); if (cookieLanguage) { return cookieLanguage; } const language = navigator.language.toLowerCase(); - const locales = Object.keys(messages); + const locales = Object.keys(localeFileMap); for (const locale of locales) { if (language.indexOf(locale) > -1) { return locale; @@ -90,11 +66,33 @@ export const getLocale = () => { const i18n = createI18n({ locale: getLocale(), fallbackLocale: "en-gb", - messages: messages, + messages: { + "en-gb": { + ...enLocale, + }, + }, }); // Wire the badge registry's i18n resolver (OTag labelKey → translated text) // without coupling the low-level OTag component to this module graph. setBadgeTranslator((key: string) => i18n.global.t(key as never)); +/** + * Loads and registers the messages for a locale on demand. No-op when the + * locale is already loaded (e.g. the statically bundled en-gb fallback) or + * unknown (the fallback locale then handles missing keys). + */ +export const loadLocaleMessages = async (locale: string): Promise => { + if (i18n.global.availableLocales.includes(locale)) { + return; + } + const file = localeFileMap[locale]; + const loader = file && localeLoaders[`./languages/${file}.json`]; + if (!loader) { + return; + } + const messages = await loader(); + i18n.global.setLocaleMessage(locale, messages.default); +}; + export default i18n; diff --git a/web/src/locales/languages/hi.json b/web/src/locales/languages/hi.json deleted file mode 100644 index b71a19b7b8..0000000000 --- a/web/src/locales/languages/hi.json +++ /dev/null @@ -1,5993 +0,0 @@ -{ - "common": { - "close": "बंद करें", - "ok": "ठीक है", - "apply": "अप्लाई करें", - "startTime": "शुरू होने का समय", - "endTime": "समाप्ति का समय", - "datetimeMessage": "* आप कई तारीख चुन सकते हैं", - "datetimeRelative": "रिश्तेदार", - "datetimeAbsolute": "निरपेक्ष", - "move": "खिसकाएँ", - "legend": "लीजेंड", - "weight": "वज़न", - "label": "लेबल", - "aggregation": "एकत्रीकरण", - "list": "सूची", - "condition": "कंडीशन", - "operator": "ऑपरेटर", - "value": "वैल्यू", - "selectFilter": "फ़िल्टर चुनें", - "browser": "ब्राउज़र", - "attachments": "अटैचमेंट", - "confirm": "पुष्टि करें", - "json": "जेसन", - "table": "तालिका", - "wrap": "लपेट", - "previous": "पिछला", - "next": "अगला", - "searchAround": "चारों ओर खोजें", - "copyToClipboard": "क्लिपबोर्ड पर कॉपी करें", - "includeSearchTerm": "खोज शब्द शामिल करें", - "addFieldToTable": "तालिका में फ़ील्ड जोड़ें", - "removeFieldFromTable": "तालिका से फ़ील्ड निकालें", - "excludeSearchTerm": "खोज शब्द को छोड़ दें", - "noOfRecords": "रिकॉर्ड की संख्या:", - "attributes": "विशेषताएँ", - "events": "इवेंट्स", - "goHome": "घर जाओ", - "cancel": "Cancel", - "relative": "Relative", - "absolute": "Absolute", - "filters": "Filters", - "seconds": "Seconds", - "minutes": "Minutes", - "hours": "Hours", - "days": "Days", - "weeks": "Weeks", - "months": "Months", - "sec": "sec", - "min": "min", - "hr": "hr", - "day": "day", - "off": "Off", - "switchTo": "Switch to", - "lightMode": "Light Mode", - "darkMode": "Dark Mode", - "manageTheme": "Manage Theme", - "minRefreshIntervalMessage": "The minimum refresh interval is {interval} seconds. Please adjust the minimum refresh interval accordingly.", - "name": "Name", - "add": "Add", - "details": "Details", - "tags": "Tags", - "process": "Process", - "axisWidth": "Axis Width", - "yAxisMin": "Y-Axis Min", - "yAxisMax": "Y-Axis Max", - "legendWidth": "Legend Width", - "exceptions": "Exceptions", - "nameRequired": "नाम आवश्यक है।", - "edit": "Edit", - "delete": "Delete", - "actions": "Actions", - "type": "Type", - "search": "Search", - "expand": "Expand", - "date": "Date", - "description": "Description", - "cancelChanges": "Cancel Changes", - "logs": "Logs", - "addGroup": "Add group", - "addCondition": "Add condition", - "required": "A value is required", - "valueMustBeGreaterThanZero": "Value must be greater than zero", - "links": "Links", - "vertical": "Vertical", - "horizontal": "Horizontal", - "custom": "Custom", - "none": "None", - "auto": "Auto", - "url": "URL", - "duration": "Duration", - "fullscreen": "Go Full Screen", - "query": "Query", - "output": "Output", - "selectStream": "Select Stream", - "unsavedTitle": "Unsaved Changes", - "unsavedMessage": "You have unsaved changes. Are you sure you want to leave?", - "cancelTitle": "Cancel Changes", - "cancelMessage": "Are you sure you want to cancel the changes?", - "back": "Back", - "save": "Save", - "update": "Update", - "favourite": "Favorite", - "refresh": "Refresh", - "showMore": "Show More", - "contactUs": "Contact Us", - "addFolder": "Add Folder", - "status": "Status", - "chunkLoadErrorMsg": "A new version of the application is available. Please refresh the page to continue.", - "id": "ID", - "getStarted": "Get Started", - "goBack": "वापस जाएँ", - "stopGenerating": "जनरेट करना रोकें", - "set": "+ सेट करें", - "copy": "कॉपी करें", - "copySuccess": "क्लिपबोर्ड पर कॉपी किया गया", - "copyError": "क्लिपबोर्ड पर कॉपी करने में विफल", - "redirectingHome": "{countdown} सेकंड में होम पर रीडायरेक्ट किया जा रहा है...", - "selectAll": "सभी चुनें", - "deselectAll": "सभी अचयनित करें", - "export": "एक्सपोर्ट करें", - "version": "संस्करण", - "updated_at": "अद्यतन समय", - "create": "बनाएँ", - "discardChanges": "परिवर्तन रद्द करें", - "unsavedChanges": "असहेजे गए परिवर्तन", - "reset": "रीसेट करें", - "retry": "पुनः प्रयास करें", - "resources": "संसाधन", - "enable": "सक्षम करें", - "disable": "अक्षम करें", - "download": "डाउनलोड करें", - "enabled": "सक्षम", - "disabled": "अक्षम", - "error": "त्रुटि", - "db": "डेटाबेस", - "invalidEmail": "कृपया एक मान्य ईमेल पता दर्ज करें।", - "nameMaxLength": "नाम अधिकतम {max} वर्णों का होना चाहिए।" - }, - "search": { - "selectIndex": "पहले स्ट्रीम का चयन करें", - "typeSearch": "अपनी खोज क्वेरी यहां टाइप करें", - "searchField": "फ़ील्ड के लिए खोजें", - "maxRecords": "वापसी के लिए अधिकतम रिकॉर्ड", - "searchResult": "खोज परिणाम", - "resultsFound": "परिणाम मिले", - "timestamp": "टाइमस्टैम्प", - "source": "_source", - "noResult": "कोई नतीजा नहीं", - "syntaxGuide": "सिंटेक्स गाइड", - "recordsPerPage": "रिकॉर्ड प्रति पेज", - "showing": "दिखा रहा है", - "of": "का", - "rowDetail": "स्रोत का विवरण", - "sourceName": "नाम", - "sourceValue": "वैल्यू", - "searchStream": "सर्च स्ट्रीम", - "showQueryLabel": "संपादकों", - "showFieldLabel": "फ़ील्ड्स", - "showHistogramLabel": "हिस्टोग्राम", - "sqlModeLabel": "SQL मोड", - "toggleFunctionLabel": "फंक्शन", - "labelWrap": "रैप कंटेंट", - "messageWrapContent": "रैप टेबल कंटेंट", - "functionPlaceholder": "फ़ंक्शन का चयन करें या बनाएं", - "functionMessage": "नया फ़ंक्शन नाम लागू करने के लिए टैब/एंटर बटन दबाएं।", - "saveFunctionLabel": "फ़ंक्शन सहेजें", - "exportLogs": "लॉग निर्यात करें", - "runQuery": "क्वेरी चलाएँ", - "syntaxGuideLabel": "सिंटेक्स गाइड", - "logs": "लॉग्स", - "enrichmentTables": "संवर्धन सारणी", - "savedViewsLabel": "सहेजे गए दृश्य", - "savedViewsNotFound": "सहेजा गया दृश्य नहीं मिला!", - "savedViewAction": "सहेजा गया दृश्य बनाएं/अपडेट करें", - "savedViewDropdownLabel": "सहेजे गए दृश्य", - "savedViewName": "नाम देखें", - "resetFields": "Reset selected table fields", - "metrics": "Metrics", - "showPatternsLabel": "Patterns", - "patternColumnHeader": "Pattern", - "occurrenceColumnHeader": "Count", - "percentageColumnHeader": "%", - "anomalyColumnHeader": "Anomaly", - "actionsColumnHeader": "Actions", - "anomalyLabel": "ANOMALY", - "anomalyDetected": "Anomaly detected", - "includePatternInSearch": "Include pattern in search", - "excludePatternFromSearch": "Exclude pattern from search", - "showPatternDetails": "Show details ({variables} variables, {examples} examples)", - "quickModeLabel": "Quick Mode", - "saveFunctionName": "Function Name", - "savedFunctionNotFound": "Function not found.", - "actionsNotFound": "Actions not found.", - "selectTransformType": "Select Function or Action to see available options", - "actionPlaceholder": "Saved Actions", - "functions": "Functions", - "actions": "Actions", - "refreshCacheAndRunQuery": "Refresh Cache & Run Query", - "searchHistory": "Search History", - "createScheduledSearch": "Create Scheduled Search", - "listScheduledSearch": "List Scheduled Search", - "scheduleSearchJob": "Schedule Search Job", - "noOfRecords": "No of Records", - "noOfRecordsTooltip": "Number of records can be specified eg: if the no. of records is 1000 then user can get maximum of 1000 records", - "maxEventsScheduleJob": "Maximum 100000 events can be returned in schedule job", - "histogramDisabledScheduleJob": "Histogram will be disabled for the schedule job", - "favoriteViews": "Favorite Views", - "wrapContent": "Wrap Content", - "notSupportedForVisualization": "Not supported for visualization", - "region": "Region", - "deleteSavedView": "Delete Saved View", - "deleteSavedViewConfirm": "Are you sure you want to delete saved view?", - "updateSavedView": "Update Saved View", - "updateSavedViewConfirm": "Are you sure you want to update the saved view? This action will overwrite the existing one.", - "collapse": "Collapse", - "expand": "Expand", - "legendLabel": "Legend", - "shareLink": "Share Link", - "downloadTable": "Download results", - "customRange": "Download results for custom range", - "initialNumber": "Initial Number", - "range": "No of Records", - "btnDownload": "Download", - "customDownloadMessage": "Enter the initial number and select the range to download data.", - "noRecordFound": "No events found. Please adjust the filters and try again.", - "noStreamSelectedMessage": "Select a stream and press 'Run query' to continue. Additionally, you can apply additional filters and adjust the date range to enhance search.", - "functionErrorLabel": "Query execution warning: (expand for more details)", - "histogramErrorBtnLabel": "Click for error details", - "functionErrorBtnLabel": "Click for error details", - "applySearch": "Adjust filter parameters and click 'Run query'.", - "searchSavedView": "Search saved views", - "searchSavedFunction": "Search", - "streamNotExist": "The following [STREAM_NAME] stream(s) were not found. Please verify if the streams exist.", - "noFieldFound": "No fields found for the selected stream", - "noFieldFoundInStream": "No field found in selected stream.", - "regionTitle": "Select a Region", - "userDefinedSchemaLabel": "User-Defined Schema", - "allFieldsLabel": "All Fields", - "allFieldsWarningMsg": "Searches can be slow when the number of fields in the schema is extremely high. Please choose the required fields carefully.", - "regionFilterMsg": "Search Region/Cluster", - "queryRangeRestrictionMsg": "The query range is restricted to {range}. Please adjust the date range accordingly. Otherwise, the start date will be automatically adjusted to fit within the allowed limit.", - "cancel": "Cancel query", - "viewTrace": "View Trace", - "viewRelated": "View Related", - "viewRelatedTooltip": "View related traces and metrics", - "flattened": "Flattened", - "unflattened": "Unflattened", - "original": "Original", - "resetFilters": "Reset filters", - "redirect_to_logs_page": "Go back to Logs page", - "visualize": "Visualize", - "enableSqlModeOrSelectSingleStream": "Please enable SQL mode to visualize", - "visualizeDisabledForMultiStream": "Visualization is disabled for multi stream", - "sqlModeDisabledForVisualization": "SQL mode cannot be disabled while on visualization with multiple streams", - "transformType": "Transform Type", - "saveActionDisabled": "Saving Action is currently unavailable", - "moreActions": "More Actions", - "downloadCSV": "CSV", - "downloadJSON": "JSON", - "fileType": "File Type", - "showOnlyInterestingFields": "Interesting Fields", - "explainQuery": "Explain Query", - "explainTooltip": "Show query execution plan", - "queryPlan": "Query Plan", - "analyze": "Analyze", - "analyzeTooltip": "Run query with execution metrics", - "analyzeResults": "Analyze Results", - "explainResults": "Explain Results", - "executionMetrics": "Execution Metrics", - "executionPlan": "Execution Plan", - "verbose": "Verbose", - "loadingPlan": "Loading query plan...", - "runningAnalyze": "Running analyze...", - "noPlanFound": "No query plan found", - "noAnalyzePlanFound": "No analyze plan found", - "errorFetchingPlan": "Error fetching query plan", - "errorRunningAnalyze": "Error running analyze", - "noLogicalPlan": "No logical plan available", - "noLogicalPlanAnalyze": "EXPLAIN ANALYZE only shows physical execution plan with metrics", - "noPhysicalPlan": "No physical plan available", - "executionSummary": "Execution Summary", - "logicalPlan": "Logical Plan", - "physicalPlan": "Physical Plan", - "totalTime": "Total Time", - "totalRows": "Total Rows", - "peakMemory": "Peak Memory", - "noStreamToUpdateView": "No stream available to update save view.", - "initialNumberPositive": "Initial number must be positive number.", - "noDataToDownload": "No data found to download.", - "histogramNotAvailableScheduled": "Histogram is not available for scheduled search", - "errorDownloadingLogs": "Error downloading logs", - "functionFieldRequired": "The function field must contain a value and cannot be left empty.", - "functionNameInvalid": "Function name is not valid.", - "functionCreationFailed": "Function creation failed", - "functionUpdatedSuccessfully": "Function updated successfully.", - "functionUpdateFailed": "Function updation failed", - "noFunctionDefinition": "No function definition found.", - "noStreamToSaveView": "No stream available to save view.", - "errorApplyingSavedView": "Error while applying saved view.", - "errorDeletingSavedView": "Error while deleting saved view.", - "errorCreatingSavedView": "Error while creating saved view.", - "errorUpdatingSavedView": "Error while updating saved view.", - "provideValidViewName": "Please provide valid view name.", - "viewDeletedSuccessfully": "View deleted successfully.", - "viewCreatedSuccessfully": "View created successfully.", - "viewUpdatedSuccessfully": "View updated successfully.", - "updatingSavedView": "Updating saved view...", - "linkCopiedSuccessfully": "Link Copied Successfully!", - "errorCopyingLink": "Error while copy link.", - "errorShorteningLink": "Error while shortening link.", - "webUrlNotConfigured": "Share URL is disabled until ZO_WEB_URL is configured by your administrator.", - "maxViewsLimit": "You can only save 10 views.", - "viewAddedToFavorites": "View added to favorites.", - "viewRemovedFromFavorites": "View removed from favorites.", - "enableSqlOrSelectStream": "Please enable SQL mode or select a single stream to visualize", - "queryEmptyToVisualize": "Query is empty, please write query to visualize", - "multipleSqlNotAllowed": "Multiple SQL queries are not allowed to visualize", - "aggregationFieldsNeedAlias": "Fields using aggregation functions must have aliases to visualize.", - "jobAlreadyScheduled": "Job Already Scheduled , please change some parameters to schedule new job", - "jobSchedulerRange": "Job Scheduler should be between 1 and 100000", - "errorAddingJob": "Error while adding job", - "selectStreamBeforeScheduling": "Please select a stream before scheduling a job", - "functionSelectionNotSupportedVisualization": "Function selection is not supported for visualization", - "toggleFunctionEditor": "Toggle Function Editor", - "functionLabel": "Function", - "actionLabel": "Action", - "transformLabel": "Transform", - "hide": "Hide", - "show": "Show", - "editor": "Editor", - "addToDashboard": "Add To Dashboard", - "selectStream": "Select Stream", - "pattern_summary": "Showing 1 to 50 out of {totalEvents} events & {patternsFound} patterns found in {logsAnalyzed} events in {totalTime} ms.", - "selectStreamFirst": "पहले एक स्ट्रीम चुनें", - "selectLogsStreamFirst": "पहले Logs स्ट्रीम चुनें", - "searchDimension": "आयाम खोजें", - "noData": "कोई डेटा उपलब्ध नहीं", - "fieldValuesEmpty": "कोई मान नहीं मिला।", - "fieldValuesEmptyHint": "मान देखने के लिए व्यापक समय सीमा का प्रयास करें।", - "hideHistogram": "हिस्टोग्राम छिपाएँ", - "createAlertFromPattern": "इस पैटर्न से अलर्ट बनाएँ", - "patternDetailsTitle": "पैटर्न विवरण", - "patternXofY": "{total} में से पैटर्न {index}", - "patternXofYShort": "{total} में से {index}", - "patternStatistics": "आँकड़े", - "patternOccurrences": "घटनाएँ", - "patternPercentage": "प्रतिशत", - "patternAnomalyDetected": "असामान्यता पाई गई", - "patternAnomalyScore": "इस पैटर्न को एक दुर्लभ पैटर्न के रूप में पहचाना गया है (असामान्यता स्कोर: {score}%)", - "patternAnomalyRare": "इस पैटर्न को एक दुर्लभ पैटर्न के रूप में पहचाना गया है (लॉग का {pct}%, {freq} घटना)", - "patternAnomalyRarePlural": "इस पैटर्न को एक दुर्लभ पैटर्न के रूप में पहचाना गया है (लॉग का {pct}%, {freq} घटनाएँ)", - "patternAnomalyLowFreq": "यह पैटर्न अपेक्षा से कम बार दिखाई देता है ({freq} बनाम औसत {avg}, z-स्कोर: {z})", - "patternAnomalyLowFreqPlural": "यह पैटर्न अपेक्षा से कम बार दिखाई देता है ({freq} बनाम औसत {avg}, z-स्कोर: {z})", - "patternZScore": "Z-स्कोर: {zScore} (औसत आवृत्ति: {avgFrequency})", - "patternVariablesHeader": "वेरिएबल", - "patternVariablesDetected": "{count} वेरिएबल पाए गए", - "patternNoVariablesDetected": "कोई वेरिएबल नहीं पाया गया", - "patternTemplate": "पैटर्न टेम्पलेट", - "patternVariablesWithCount": "वेरिएबल ({count})", - "patternVariableNameColumn": "वेरिएबल नाम", - "patternVariableTypeColumn": "प्रकार", - "patternExampleLogsWithCount": "उदाहरण लॉग ({count})", - "patternNavPrevious": "पिछला", - "patternNavNext": "अगला", - "patternWildcardSampleValues": "नमूना मान", - "patternNoValuesAvailable": "कोई मान उपलब्ध नहीं", - "wildcardSampleValues": "नमूना मान", - "nlpModeLabel": "प्राकृतिक भाषा मोड", - "disableQuickMode": "क्विक मोड अक्षम करें", - "menuMore": "और", - "menuGroupSetOnce": "एक बार सेट करें", - "menuGroupSavedViews": "सहेजे गए व्यू", - "menuGroupTools": "टूल", - "menuGroupHistory": "इतिहास", - "menuGroupDownloads": "डाउनलोड", - "menuGroupSchedule": "शेड्यूल", - "menuGroupInspect": "निरीक्षण", - "menuGroupExplain": "व्याख्या", - "validSql": "मान्य SQL", - "invalidSql": "अमान्य क्वेरी", - "showHideColumns": "कॉलम टॉगल करें", - "liveMode": "स्वतः", - "liveModeTooltip": "फ़िल्टर/समय परिवर्तन पर क्वेरी स्वतः चलाएँ", - "autoRunEnabled": "स्वतः रन सक्षम", - "turnOnLiveMode": "स्वतः रन चालू करें", - "turnOffLiveMode": "स्वतः रन बंद करें", - "autoRefresh": "स्वतः रिफ़्रेश", - "traces": "ट्रेस", - "switchToLogs": "Logs पर वापस जाने के लिए क्लिक करें", - "createSavedView": "सहेजा गया व्यू बनाएँ", - "listSavedViews": "सहेजे गए व्यू सूचीबद्ध करें", - "generateSQL": "SQL जनरेट करें", - "generateQuery": "AI से पूछें", - "askAI": "AI से पूछें", - "generateSQLTooltip": "प्राकृतिक भाषा से SQL क्वेरी जनरेट करें (Ctrl/Cmd + Enter)", - "generateQueryTooltip": "अपनी क्वेरी में सहायता के लिए AI से पूछें", - "askAITooltip": "अपनी क्वेरी में सहायता के लिए AI से पूछें", - "generating": "जनरेट हो रहा है...", - "nlQueryGenerationFailed": "क्वेरी जनरेट करने में विफल। कृपया पुनः प्रयास करें।", - "nlQueryGenerationSuccess": "क्वेरी सफलतापूर्वक जनरेट हुई!", - "askAIPlaceholder": "अपनी क्वेरी में सहायता के लिए AI से पूछें...", - "askAIFunctionPlaceholder": "अपने फ़ंक्शन में सहायता के लिए AI से पूछें...", - "askAIPlaceholderRotation": { - "one": "मुझे पिछले एक घंटे की त्रुटियाँ दिखाएँ…", - "two": "5 सेकंड से अधिक समय लेने वाली धीमी क्वेरियाँ खोजें…", - "three": "सेवा के अनुसार समूहित 5xx प्रतिक्रियाएँ गिनें…", - "four": "लॉग फ़िल्टर करें जहाँ level = 'error'…" - }, - "enterPrompt": "क्वेरी जनरेट करने के लिए एक प्रॉम्प्ट दर्ज करें", - "enterFunctionPrompt": "फ़ंक्शन जनरेट करने के लिए एक प्रॉम्प्ट दर्ज करें", - "analyzingQuery": "क्वेरी का विश्लेषण किया जा रहा है...", - "generatingQuery": "क्वेरी जनरेट हो रही है...", - "queryGeneratedSuccess": "क्वेरी सफलतापूर्वक जनरेट हुई!", - "queryGenerationStopped": "क्वेरी जनरेशन रोक दिया गया।", - "queryGenerationFailed": "क्वेरी जनरेशन विफल रहा।", - "fetchingResults": "खोज परिणाम प्राप्त किए जा रहे हैं...", - "noResultsFound": "कोई परिणाम नहीं मिला", - "errorFetchingResults": "परिणाम प्राप्त करते समय त्रुटि", - "somethingWentWrong": "कुछ गलत हो गया", - "selectStreamForAI": "AI का उपयोग करने के लिए पहले एक स्ट्रीम चुनें", - "collapseFields": "फ़ील्ड संक्षिप्त करें", - "openFields": "फ़ील्ड खोलें", - "aiBarSuccessPlaceholder": "आप आगे क्या करना चाहेंगे?", - "buildQuery": "विज़ुअलाइज़ करें", - "enableSqlModeForBuild": "क्वेरी बिल्डर का उपयोग करने के लिए कृपया SQL मोड सक्षम करें और एकल स्ट्रीम चुनें", - "applyToSearch": "खोज पर लागू करें", - "complexQueryDetected": "जटिल क्वेरी पाई गई। कस्टम मोड का उपयोग किया जा रहा है।", - "nlpModeDisabledForVisualization": "कई स्ट्रीम के साथ टाइमचार्ट पर रहते हुए प्राकृतिक भाषा मोड अक्षम नहीं किया जा सकता", - "functionEditorLabel": "फ़ंक्शन एडिटर", - "selectLogStream": "logs स्ट्रीम चुनें", - "loadingStream": "स्ट्रीम लोड हो रही है...", - "searchInspect": "खोज निरीक्षण", - "vrlOnlyForTableWarning": "VRL फ़ंक्शन केवल तालिका चार्ट के लिए समर्थित है।", - "customDownloadTitle": "कस्टम डाउनलोड", - "selectFunctionNamePlaceholder": "फ़ंक्शन नाम चुनें", - "confirmFunctionUpdateTitle": "अद्यतन की पुष्टि करें", - "confirmFunctionUpdateMsg": "क्या आप वाकई फ़ंक्शन {name} को अद्यतन करना चाहते हैं?", - "traceIdLabel": "Trace ID:", - "enterTraceIdPlaceholder": "Trace ID दर्ज करें", - "changeQueryModeTitle": "क्वेरी मोड बदलें", - "changeQueryModeConfirm": "क्या आप वाकई क्वेरी मोड बदलना चाहते हैं? X-Axis, Y-Axis और फ़िल्टर के लिए सहेजा गया डेटा मिटा दिया जाएगा।" - }, - "menu": { - "home": "होम", - "about": "हमारे बारे में", - "user": "यूज़र", - "index": "स्ट्रीम", - "search": "लॉग्स", - "traces": "निशान", - "template": "टैम्प्लेट", - "signOut": "साइन आउट", - "account": "अकाउंट", - "feedback": "फ़ीडबैक", - "documentation": "डॉक्स", - "tickets": "टिकट", - "organizations": "संगठन", - "function": "फंक्शन्स", - "ingestion": "अंतर्ग्रहण", - "metrics": "मेट्रिक्स", - "slack": "स्लैक", - "help": "मदद", - "dashboard": "डैशबोर्ड्स", - "alerts": "अलर्ट्स", - "openapi": "OpenAPI", - "docs": "डॉक्स", - "billings": "बिलिंग", - "rum": "रियल यूज़र मॉनिटरिंग", - "settings": "सेटिंग", - "incidents": "Incidents", - "iam": "IAM", - "report": "Reports", - "pipeline": "Pipelines", - "language": "Language", - "actions": "Actions", - "evals": "मूल्यांकन", - "aiObservability": "AI" - }, - "rum": { - "title": "रियल यूज़र मॉनिटरिंग", - "performance": "परफॉरमेंस", - "sessions": "सत्र", - "errorTracking": "एरर ट्रैकिंग", - "overview": "अवलोकन", - "webVitals": "वेब विटल्स", - "errors": "त्रुटियाँ", - "api": "एपीआई", - "aboutRUMTitle": "अपने उपयोगकर्ता अनुभव को बढ़ाने के लिए वास्तविक उपयोगकर्ता निगरानी की खोज करें", - "aboutRUMMessage": "रियल यूज़र मॉनिटरिंग आपको वास्तविक उपयोगकर्ताओं के दृष्टिकोण से अपनी वेबसाइट या एप्लिकेशन के प्रदर्शन को ट्रैक और विश्लेषण करने की अनुमति देता है। इसका अर्थ है यह समझना कि वास्तविक यूज़र आपकी साइट का अनुभव कैसे करते हैं, वे कहाँ मंदी का सामना करते हैं, वे किन पेजों का अक्सर उपयोग करते हैं, और बहुत कुछ।", - "getStartedTitle": "रियल यूज़र मॉनिटरिंग के साथ शुरुआत करें", - "getStartedLabel": "शुरू हो जाओ", - "performanceSummaryLabel": "प्रदर्शन का सारांश", - "webVitalsLabel": "वेब विटल्स", - "errorLabel": "त्रुटियाँ", - "sessionLabel": "सत्र", - "learnWebVitalsLabel": "Web Vitals के बारे में और जानें", - "clickHereLabel": "यहां क्लिक करें", - "skipInactivity": "निष्क्रियता छोड़ें", - "error": "त्रुटि", - "sessionType": "सत्र का प्रकार", - "timeSpent": "खर्च किया गया समय", - "errorCount": "त्रुटि गणना", - "initialViewName": "इंटिटल व्यू का नाम", - "timestamp": "टाइमस्टैम्प", - "type": "टाइप करें", - "category": "केटेगरी", - "level": "लेवल", - "description": "विवरण", - "resourceURL": "संसाधन URL", - "durationms": "अवधि (ms)", - "sizekb": "आकार (kb)", - "viewURL": "URL देखें", - "events": "इवेंट्स", - "location": "लोकेशन", - "frustrationCount": "Frustrations", - "loadingMsg": "Hold on tight, we're loading RUM data.", - "breadcrumbs": "Breadcrumbs", - "tags": "Tags", - "searchEvents": "Search Events", - "loadingSessions": "Hold on tight, we're fetching sessions.", - "errorStack": "Error Stack", - "sessionReplay": "Session Replay", - "viewSessionReplay": "View Session Replay", - "playSessionReplay": "Play Session Replay", - "discoverSessionTitle": "Discover Session Replay to Understand User Interactions in Detail", - "discoverSessionMessage": "Session Replay captures and replays user interactions on your website or application. This allows you to visually review how users navigate, where they click, what they type, and how they engage with your content", - "getStartedRUM": "Get started with Real User Monitoring", - "loadingErrorDetails": "Hold on tight, we're fetching error details.", - "eventID": "Event ID", - "loadingApplicationErrors": "Hold on tight, we're fetching application errors.", - "sourceMaps": "सोर्स मैप", - "service": "सेवा", - "environment": "एनवायरनमेंट", - "applyFilters": "फ़िल्टर लागू करें", - "uploadSourceMaps": "सोर्स मैप अपलोड करें", - "files": "फ़ाइलें", - "uploadedAt": "अपलोड समय", - "uploadSourceMapsForm": { - "serviceRequired": "सेवा आवश्यक है", - "versionRequired": "संस्करण आवश्यक है", - "fileRequired": "कृपया अपलोड करने के लिए एक ZIP फ़ाइल चुनें", - "fileTypeZip": "केवल ZIP फ़ाइलों की अनुमति है" - }, - "emptyState": { - "title": "Real User Monitoring के साथ अपने उपयोगकर्ताओं की निगरानी करें", - "description": "RUM वास्तविक उपयोगकर्ता इंटरैक्शन ट्रैक करता है — पेज लोड, त्रुटियाँ, API कॉल और सत्र रीप्ले — ताकि आप ठीक देख सकें कि उपयोगकर्ता आपके एप्लिकेशन का अनुभव कैसे करते हैं।", - "webApp": "एक वेब ऐप इंस्ट्रूमेंट करें", - "webAppDesc": "किसी भी JavaScript ऐप में OpenObserve RUM SDK जोड़ें", - "sessionReplay": "सत्र रीप्ले सक्षम करें", - "sessionReplayDesc": "UX समस्याओं को डिबग करने के लिए उपयोगकर्ता सत्र रिकॉर्ड और रीप्ले करें", - "learnMore": "और जानें:", - "quickImpl": "त्वरित कार्यान्वयन मार्गदर्शिका", - "blogPost": "फ्रंटएंड मॉनिटरिंग की मूल बातें" - }, - "traces": "ट्रेस", - "noCorrelatedTraces": "इस सत्र के लिए कोई सहसंबद्ध ट्रेस नहीं मिला।", - "viewTraceDetails": "ट्रेस विवरण देखें", - "routeChange": "रूट", - "initialView": "प्रारंभिक", - "span": "स्पैन", - "spans": "स्पैन", - "errorTraces": "त्रुटि ट्रेस", - "failedToFetchTraces": "ट्रेस डेटा प्राप्त करने में विफल। कृपया पुनः प्रयास करें।", - "traceNotFound": "ट्रेस विवरण नहीं मिला।", - "failedToFetchTraceDetails": "ट्रेस विवरण लोड करने में विफल। कृपया पुनः प्रयास करें।", - "seekToMoment": "सत्र में इस क्षण पर जाएँ", - "timeInSession": "सत्र समय", - "route": "रूट", - "duration": "अवधि" - }, - "about": { - "name": "OpenObserve", - "introduction": "अवलोकनीयता सरलीकृत।", - "version": "वर्शन", - "commitHash": "कमिट हैश", - "buildDate": "निर्माण की तारीख", - "logoMsg": "अवलोकनीयता सरलीकृत।", - "buildType": "Platform", - "manage_license": "Manage License", - "os_libraries": "Open Source Libraries", - "os_libraries_msg": "Built on the shoulders of giants. OpenObserve depends on many amazing open source libraries.", - "license_info": "License Information", - "license_info_msg": "You are using the Enterprise version governed by the enterprise license agreement.", - "license_info_os_msg": "You are using the open source version under the", - "license_info_note": "By using OpenObserve, you agree to comply with the applicable license terms.", - "ent_lincese_detail_lbl": "Enterprise License Details", - "lincese_id_lbl": "License ID", - "status_lbl": "Status", - "create_at_lbl": "Created At", - "expires_at_lbl": "Expires At", - "usage_limits": "Usage Limits", - "ingestion_type": "Ingestion Type", - "ingestion_limit": "Ingestion Limit", - "today_usage": "Today's Usage", - "feature_comparison_lbl": "Feature Comparison", - "feature_comparision_ent_msg": "You're using OpenObserve Enterprise Edition with access to all advanced features listed below.", - "feature_comparision_plan_detail": "Your plan: Enterprise Edition is free for up to 50 GB/day (~1.5 TB/month) of data ingestion.", - "feature_comparision_os_msg": "You're currently using OpenObserve Open Source Edition. Upgrade to Enterprise Edition to unlock advanced features listed in the comparison table below.", - "feature_comparision_good_news": "Good news: OpenObserve Enterprise Edition is completely free for up to 50 GB/day (~1.5 TB/month) of data ingestion.", - "feature_comparision_subtitle": "Compare features across Open Source, Enterprise, and Cloud offerings", - "feature_column_name": "Feature", - "edition_opensource": "Open Source (Self hosted)", - "edition_enterprise": "Enterprise (Self hosted)", - "edition_cloud": "Cloud", - "feature_logs": "Logs", - "feature_metrics": "Metrics", - "feature_traces": "Traces", - "feature_rum": "RUM", - "feature_alerts": "Alerts", - "feature_dashboards": "Dashboards", - "feature_reports": "Reports", - "feature_vrl_functions": "VRL functions", - "feature_pipelines": "Pipelines", - "feature_high_availability": "High Availability", - "feature_multitenancy": "Multitenancy (Organizations)", - "feature_dynamic_schema": "Dynamic schema and schema evolution", - "feature_multilingual_gui": "Advanced multilingual GUI", - "feature_sso": "Single Sign On", - "feature_rbac": "Role Based Access Control (RBAC)", - "feature_federated_search": "Federated search / Super cluster", - "feature_query_management": "Query management", - "feature_workload_management": "Workload management (QoS)", - "feature_audit_trail": "Audit trail", - "feature_action_scripts": "Action Scripts", - "feature_sensitive_data_redaction": "Sensitive data redaction", - "feature_influence_roadmap": "Ability to influence roadmap", - "feature_license": "License", - "feature_support": "Support", - "feature_cost": "Cost", - "feature_pipelines_external": "Pipelines - External destinations", - "feature_extreme_performance": "Extreme performance (100x improvement for many queries)", - "feature_query_optimizer": "Query optimizer", - "value_sso_requires_ha": "✅ Requires HA mode", - "value_rbac_requires_ha": "✅ Requires HA mode", - "value_roadmap_enterprise_plan": "✅ on enterprise plan", - "value_license_agpl": "AGPL", - "value_license_enterprise": "Enterprise", - "value_license_cloud": "Cloud", - "value_support_community": "Community", - "value_support_enterprise": "Enterprise", - "value_support_cloud": "Cloud", - "value_cost_free": "Free", - "value_cost_enterprise": "If self hosted, free for up to 50 GB/Day data ingested. Paid thereafter", - "value_cost_cloud": "14 day free trial. Paid thereafter", - "commit_lbl": "Commit", - "build_lbl": "Built", - "no_license_installed_lbl": "No License Installed", - "no_license_installed_msg": "No enterprise license is currently installed. Contact your administrator or request a new license.", - "active_lbl": "Active", - "inactive_lbl": "Inactive", - "community_msg": "Join our vibrant community of developers and users building the future of observability.", - "community_lbl": "Community", - "loading_license_info": "Loading license information...", - "failed_to_load_license_info": "Failed to load license information", - "installation_id_lbl": "Installation ID", - "expired_lbl": "Expired", - "license_management": "License Management", - "no_license_found": "No License Found", - "installation_id": "Installation ID", - "contact_admin_license": "Contact your administrator for getting a license and paste the key here, or:", - "get_license": "Get License", - "enter_license_key": "Enter License Key", - "paste_license_placeholder": "Paste your license key here...", - "license_auto_filled": "License key auto-filled from URL. Click \"Update License\" to apply.", - "update_license": "Update License", - "license_id": "License ID", - "company": "Company", - "license_key": "License Key", - "contact_name": "Contact Name", - "contact_email": "Contact Email", - "request_new_license": "Request new License", - "add_new_license_key": "Add New License Key", - "update_license_key": "Update License Key", - "paste_new_license_placeholder": "Paste new license key here...", - "your_complete_license_key": "Your complete license key:", - "copy_key": "Copy Key", - "usage_information": "Usage Information", - "license_allows_ingestion": "The current license allows {limit} GB of data ingestion per day.", - "limit_exceeded_days": "The limit was exceeded on {days} day{plural} this month", - "limit_exceeded_warning": ", while the maximum allowed is {max} day{maxPlural}. As a result, some application features may be temporarily restricted", - "limit_exceeded_info": " ({remaining} allowance{plural} left of {max} max)", - "no_limit_exceedances": "No limit exceedances this month (max {max} allowed per month).", - "usage_shows_zero_unlimited": "* Usage shows 0% for unlimited plans", - "license_updated_success": "License updated successfully", - "failed_to_update_license": "Failed to update license", - "license_key_copied": "License key copied to clipboard", - "failed_to_copy_license": "Failed to copy license key", - "license_already_active_title": "License Already Active", - "license_already_active_msg": "Your license is still active. Do you want to update it with the new license key?", - "yes_update_license": "Yes, update license", - "no_keep_current": "No, keep current", - "header_button": { - "cloud_features": "OpenObserve Features", - "enterprise_edition": "Edition: Enterprise", - "get_enterprise_free": "Get OpenObserve Enterprise (Free)" - }, - "enterprise_offer": { - "cloud": { - "hero_title": "Enterprise Features", - "offer_text": "Get all enterprise features completely free when you self-host OpenObserve", - "badge_text": "Free up to 50GB / day", - "features_title": "OpenObserve Cloud Features", - "features_subtitle": "All features included in your cloud subscription", - "primary_button_text": "Download Now" - }, - "enterprise_without_license": { - "hero_title": "Enterprise Features", - "offer_text": "Request a free license to maximize your OpenObserve deployment", - "badge_text": "Free up to {quota}GB / day", - "features_title": "Available Enterprise Features", - "features_subtitle": "Get a free license to unlock unlimited capabilities", - "primary_button_text": "Get Free License", - "license_note": "50GB/day without license • 50GB/day with license" - }, - "enterprise_with_license": { - "hero_title": "Your Enterprise Edition", - "offer_text": "You're running OpenObserve Enterprise with all features enabled", - "badge_text_unlimited": "Ingestion Limit: Unlimited", - "badge_text_limited": "Ingestion Limit: {limit}GB / day", - "features_title": "Active Enterprise Features", - "features_subtitle": "All features unlocked and ready to use", - "primary_button_text": "Manage License" - }, - "open_source": { - "hero_title": "Get Enterprise Edition", - "offer_text": "Download and unlock all enterprise features completely free", - "badge_text": "Free up to 50GB / day", - "features_title": "Unlock All Enterprise Features", - "features_subtitle": "Everything you need for production-ready observability", - "primary_button_text": "Download Now" - }, - "core_features": { - "logs_metrics_traces": { - "name": "Logs, Metrics, Traces", - "note": "Full observability data ingestion and analysis" - }, - "rum": { - "name": "RUM", - "note": "Real User Monitoring for frontend performance" - }, - "alerts": { - "name": "Alerts", - "note": "Real-time alerting and notifications" - }, - "dashboards": { - "name": "Dashboards", - "note": "Customizable visualization dashboards" - }, - "reports": { - "name": "Reports", - "note": "Scheduled and on-demand reporting" - }, - "vrl_functions": { - "name": "VRL Functions", - "note": "Vector Remap Language for data transformation" - }, - "pipelines": { - "name": "Pipelines", - "note": "Data processing and transformation pipelines" - }, - "high_availability": { - "name": "High Availability", - "note": "Distributed architecture for reliability" - }, - "multitenancy": { - "name": "Multitenancy", - "note": "Organization-based data isolation" - }, - "dynamic_schema": { - "name": "Dynamic Schema", - "note": "Automatic schema detection and evolution" - }, - "multilingual_gui": { - "name": "Multilingual GUI", - "note": "Advanced internationalization support" - } - }, - "enterprise_features": { - "single_sign_on": { - "name": "Single Sign On", - "note": "Seamless authentication with SSO providers" - }, - "rbac": { - "name": "Role Based Access Control", - "note": "Granular permissions and user management" - }, - "federated_search": { - "name": "Federated Search / Supercluster", - "note": "Distribute queries across multiple clusters" - }, - "query_management": { - "name": "Query Management", - "note": "Advanced query monitoring and optimization" - }, - "workload_management": { - "name": "Workload Management", - "note": "Priority-based resource allocation and QoS" - }, - "audit_trail": { - "name": "Audit Trail", - "note": "Complete activity logging for compliance" - }, - "action_scripts": { - "name": "Action Scripts", - "note": "Automate responses to events and alerts" - }, - "sensitive_data_redaction": { - "name": "Sensitive Data Redaction", - "note": "Protect PII and sensitive information" - }, - "pipeline_remote_destinations": { - "name": "Pipeline Remote Destinations", - "note": "Send data to remote destinations" - }, - "query_optimizer": { - "name": "Query Optimizer / Aggregation Cache", - "note": "TopK aggregation and query optimization" - }, - "incident_management": { - "name": "Incident Management", - "note": "Track and manage incidents efficiently" - }, - "sre_agent": { - "name": "SRE Agent", - "note": "Automated SRE operations and insights" - }, - "ai_assistant": { - "name": "O2 Assistant", - "note": "Intelligent query and analysis assistance" - }, - "anomaly_detection": { - "name": "Anomaly Detection", - "note": "Automatically detect anomalies in data" - }, - "metrics_auto_downsampling": { - "name": "Metrics Auto Downsampling", - "note": "Automatic metrics aggregation over time" - }, - "log_patterns": { - "name": "Log Patterns", - "note": "Discover patterns in log data" - }, - "mcp_server": { - "name": "MCP Server", - "note": "Model Context Protocol server integration" - }, - "rate_limiting": { - "name": "Rate Limiting", - "note": "Control query and ingestion rates" - }, - "broadcast_join": { - "name": "Broadcast Join", - "note": "Optimized distributed join operations" - }, - "logs_metrics_traces_correlation": { - "name": "Logs, Metrics & Traces Correlation", - "note": "Automated detection and correlation" - }, - "service_maps": { - "name": "Service Maps", - "note": "Visualize service dependencies" - }, - "byob": { - "name": "अपनी खुद की बकेट लाएँ", - "note": "संगठन डेटा को अपनी खुद की क्लाउड बकेट में रूट करें" - } - }, - "buttons": { - "contact_sales": "Contact Sales", - "learn_more": "Learn More" - }, - "tooltip": { - "high_availability_mode_only": "High Availability mode only" - }, - "error_messages": { - "not_authorized_manage_license": "You are not authorized to manage the license." - } - }, - "feature_correlation_management": "सहसंबंध प्रबंधन", - "feature_log_patterns": "लॉग पैटर्न", - "environment_type": "एनवायरनमेंट प्रकार", - "refresh_license_limits": "लाइसेंस सीमाएँ रिफ़्रेश करें", - "license_allows_unlimited_ingestion": "वर्तमान लाइसेंस असीमित डेटा इन्जेशन की अनुमति देता है।", - "license_refresh_success": "लाइसेंस सीमा रिफ़्रेश सफलतापूर्वक ट्रिगर किया गया", - "failed_to_refresh_license": "लाइसेंस सीमाएँ रिफ़्रेश करने में विफल" - }, - "login": { - "userid": "यूज़र आईडी", - "userEmail": "यूज़र ईमेल", - "signIn": "साइन इन", - "signUp": "साइन अप करें", - "password": "पासवर्ड", - "cnfpassword": "पासवर्ड की पुष्टि करें", - "singnInWithGoogle": "Google के साथ जारी रखें", - "email": "ईमेल", - "login": "Login" - }, - "user": { - "header": "संगठन का सदस्य", - "id": "यूज़र आईडी", - "name": "यूज़र नेम", - "role": "भूमिका", - "CREATED": "बनाया", - "UPDATED": "अपडेट किया गया", - "password": "पासवर्ड", - "repassword": "पासवर्ड की पुन: पुष्टि करें", - "addOrUpdate": "यूज़र जोड़ें/अपडेट करें", - "editUser": "यूज़र अपडेट करें", - "add": "यूज़र जोड़ें", - "search": "यूज़र खोजें", - "createdAt": "पर अपडेट किया गया", - "updatedAt": "पर बनाया गया", - "status": "स्टेटस", - "ID": "आईडी", - "email": "ईमेल", - "cognitoSub": "cognito_sub", - "firstName": "पहला नाम", - "lastName": "लास्ट नेम", - "actions": "क्रियाएँ", - "memberCreated": "सदस्य बनाया गया", - "memberUpdated": "सदस्य अपडेट किया गया", - "updateRole": "भूमिका अपडेट करें", - "orgMemberId": "संगठन सदस्य आईडी", - "view": "देखें", - "update": "अपडेट", - "delete": "डिलीट करें", - "confirmDeleteHead": "यूज़र डिलीट करें", - "confirmDeleteMsg": "क्या आप वाकई इस उपयोगकर्ता को हटाना चाहते हैं?", - "cancel": "कैंसिल करें", - "save": "सेव करें", - "ok": "ठीक है", - "updatenotallowed": "मालिक के लिए अपडेट की अनुमति नहीं है", - "sendInvite": "आमंत्रण भेजें", - "inviteByEmail": "ईमेल द्वारा आमंत्रित करें। अर्धविराम (;) या अल्पविराम (,) द्वारा अलग किए गए कई ईमेल", - "inviteByEmailHint": "सदस्य जोड़ने के लिए आपसे यथानुपात राशि ली जाएगी।", - "admin": "व्यवस्थापक", - "member": "सदस्य", - "changePassword": "पासवर्ड बदलें", - "oldPassword": "पुराना पासवर्ड", - "newPassword": "नया पासवर्ड", - "organization": "संगठन", - "otherOrganization": "अन्य संगठन", - "isExistingUser": "मौजूदा यूज़र?", - "deleteAPIKeyMessage": "क्या आप वाकई इस User API कुंजी को हटाना चाहते हैं? यह क्रिया पूर्ववत नहीं की जा सकती। पुष्टि करने के लिए OK पर क्लिक करें।", - "apiKeyNotFound": "उपयोगकर्ता API कुंजी नहीं मिली।", - "allowedOrg": "अनुमत संगठन", - "roles": "Roles", - "groups": "Groups", - "customRole": "Custom Roles", - "description": "Description", - "revoke_invite": "Revoke Invite", - "subtitle": "इस संगठन तक पहुँच वाले लोग", - "authType": "प्रमाणीकरण", - "authTypeSSO": "SSO", - "authTypeLocal": "नेटिव", - "noCustomRolesHint": "कोई कस्टम भूमिका परिभाषित नहीं — IAM → Roles में एक बनाएँ", - "externalUserCustomRoleHint": "बाहरी उपयोगकर्ताओं को केवल स्रोत प्रणाली के माध्यम से संशोधित किया जा सकता है", - "revokeInvitationTitle": "आमंत्रण रद्द करें", - "revokeInvitationMsg": "क्या आप वाकई {email} के लिए आमंत्रण रद्द करना चाहते हैं?", - "deleteUsersTitle": "उपयोगकर्ता हटाएँ", - "deleteUsersMsg": "क्या आप वाकई {count} उपयोगकर्ता हटाना चाहते हैं?", - "fieldRequired": "यह फ़ील्ड आवश्यक है", - "roleRequired": "भूमिका आवश्यक है", - "passwordRequired": "पासवर्ड आवश्यक है।", - "currentPasswordRequired": "वर्तमान पासवर्ड आवश्यक है।", - "newPasswordRequired": "नया पासवर्ड आवश्यक है।", - "passwordPolicyHint": "पासवर्ड 8-128 वर्णों का होना चाहिए और इसमें कम से कम एक लोअरकेस अक्षर, एक अपरकेस अक्षर, एक अंक और एक विशेष वर्ण होना चाहिए।", - "inviteEmailInvalid": "कृपया सही ईमेल आईडी दर्ज करें।", - "otherOrgInvalid": "संगठन का नाम अक्षर से शुरू होना चाहिए और अल्फ़ान्यूमेरिक, _ या - होना चाहिए।" - }, - "ticket": { - "header": "सहायता टिकट", - "add": "टिकट जोड़ें", - "save": "सेव करें", - "update": "अपडेट", - "delete": "टिकट डिलीट करें", - "search": "टिकट खोजें", - "subject": "विषय", - "description": "विवरण", - "id": "टिकट आईडी", - "createdAt": "पर बनाया गया", - "updatedAt": "पर अपडेट किया गया", - "status": "स्टेटस", - "comments": "कमेंट्स", - "addComments": "टिप्पणियां जोड़ें", - "attachments": "अटैचमेंट", - "noDataErrorMsg": "कोई डेटा उपलब्ध नहीं है", - "createTicket": "टिकट बनाएं", - "updateTicket": "टिकट अपडेट करें", - "inputTextHolder": "यहां टाइप करें", - "selectHolder": "चुनें", - "cancel": "कैंसिल करें", - "noOrganizationSelected": "No Organization Selected", - "selectOrganizationForQuota": "Select an Organization to set quotas" - }, - "organization": { - "header": "संगठन", - "orgName": "संगठन का नाम", - "createOrganization": "संगठन बनाएं", - "updateOrganization": "संगठन अपडेट करें", - "nameHolder": "यहां नाम टाइप करें", - "add": "संगठन जोड़ें", - "save": "सेव करें", - "cancel": "कैंसिल करें", - "delete": "संगठन मिटाएँ", - "search": "खोज संगठन", - "subject": "विषय", - "description": "विवरण", - "id": "संगठन आईडी", - "createdAt": "पर बनाया गया", - "updatedAt": "पर अपडेट किया गया", - "status": "स्टेटस", - "invite": "टीम के साथी को आमंत्रित करें", - "name": "नाम", - "type": "टाइप करें", - "owner": "मालिक", - "created": "बनाया गया", - "actions": "क्रियाएँ", - "emailLabel": "ईमेल आईडी दर्ज करें", - "emailHolder": "यहां ईमेल आईडी टाइप करें", - "note": "ध्यान दें: टीम के कई साथियों को जोड़ने के लिए एंटर दबाएं।", - "identifier": "आइडेंटिफ़ायर", - "copyapikey": "API कुंजी कॉपी करें", - "getapikey": "API कुंजी प्राप्त करें", - "role": "भूमिका", - "nameRequired": "नाम आवश्यक है", - "subscription_type": "प्लान का प्रकार", - "proceed_subscription": "सदस्यता के लिए आगे बढ़ें", - "subscription_plan": "Subscription Plan", - "makeBilledMember": "इस संगठन को वर्तमान संगठन के बिलिंग सदस्य के रूप में जोड़ें।", - "nameHelpText": "केवल अल्फ़ान्यूमेरिक वर्ण, स्पेस और अंडरस्कोर का उपयोग करें।", - "manage": "प्रबंधित करें" - }, - "template": { - "header": "टेम्पलेट्स", - "add": "टैम्प्लेट जोड़ें", - "search": "खोज टेम्पलेट" - }, - "logStream": { - "header": "स्ट्रीम", - "search": "सर्च स्ट्रीम", - "name": "नाम", - "docNum": "डॉक्टर नूम", - "storageSize": "निगला गया डेटा", - "compressedSize": "संकुचित आकार", - "time": "टाइम", - "storageType": "स्टोरेज टाइप", - "shardNum": "शार्ड नंबर", - "schemaHeader": "स्ट्रीम विवरण", - "streamSettings": "स्ट्रीम सेटिंग", - "streamPartitionKey": "विभाजन कुंजी", - "streamftsKey": "पूर्ण पाठ खोज कुंजी", - "delete": "डिलीट करें", - "deleteIndex": "स्ट्रीम डिलीट करें", - "confirmDeleteHead": "स्ट्रीम डिलीट करें", - "confirmDeleteMsg": "क्या आप वाकई इस स्ट्रीम को हटाना चाहते हैं?", - "cancel": "कैंसिल करें", - "ok": "ठीक है", - "docsCount": "दस्तावेज़ों की संख्या", - "mapping": "मैपिंग", - "propertyName": "फ़ील्ड", - "propertyType": "टाइप करें", - "type": "टाइप करें", - "refreshStats": "आँकड़े रीफ़्रेश करें", - "updateSettings": "सेटिंग अपडेट करें", - "explore": "एक्सप्लोर करें", - "timezone": "टाइमज़ोन", - "deleteActionLabel": "डिलीट करें", - "deleteActionMessage": "क्या आप वाकई चयनित फ़ील्ड को हटाना चाहते हैं। यह क्रिया पूर्ववत नहीं की जा सकती।", - "labelAll": "सभी", - "labelLogs": "लॉग्स", - "labelMetrics": "मेट्रिक्स", - "labelTraces": "निशान", - "streamBloomKey": "Bloom Filter", - "confirmBatchDeleteHead": "Delete Streams", - "confirmBatchDeleteMsg": "Are you sure you want to delete the selected streams?", - "deleteDatesMessage": "Are you sure you want to delete the selected dates? This action cannot be undone.", - "labelMetadata": "Metadata", - "labelIndex": "Index", - "add": "New stream", - "dataRetention": "Data Retention (in days)", - "streamNameRequired": "स्ट्रीम नाम आवश्यक है", - "streamTypeRequired": "कृपया एक स्ट्रीम प्रकार चुनें", - "dataRetentionMin": "डेटा प्रतिधारण कम से कम 1 दिन होना चाहिए", - "indexing": "Indexing", - "createStream": "Create Stream", - "indexType": "Index Type", - "addField": "Add Field", - "addSchemaField": "Add to Defined Schema", - "removeSchemaField": "Remove Defined Schema", - "storeOriginalData": "Store Original Data", - "flattenLevel": "Flatten Level", - "approxPartition": "Use Stream Stats for Partitioning", - "indexSize": "Index Size", - "extendedStartDate": "Start Date", - "extendedEndDate": "End Date", - "regexPatterns": "SDR", - "envQuickModeMsg": "Environment quick mode field", - "sdr": "Sensitive Data Redaction", - "fields": "Fields", - "fieldName": "Field Name", - "fieldRequired": "Field is required!", - "dataType": "Data Type", - "dataTypeRequired": "Data Type is required!", - "subtitle": "इंडेक्स प्रबंधन और स्ट्रीम कॉन्फ़िगरेशन", - "streamNameHelpText": "केवल अल्फ़ान्यूमेरिक वर्ण, अंडरस्कोर और कोलन का उपयोग करें।", - "deleteAssociatedAlertsPipelines": "स्ट्रीम से संबद्ध सभी पाइपलाइनें और अलर्ट हटाएँ", - "udsFieldAlreadyInSchema": "एक या अधिक चयनित फ़ील्ड पहले से ही परिभाषित स्कीमा का हिस्सा हैं" - }, - "function": { - "header": "फंक्शन्स", - "add": "नया फ़ंक्शन बनाएं", - "search": "खोज फ़ंक्शन", - "name": "नाम", - "function": "कार्य विवरण", - "save": "सेव करें", - "jsfunction": "फंक्शन", - "stream_name": "स्ट्रीम का नाम", - "order": "आर्डर", - "ingest": "क्या इनजेस्ट टाइम फंक्शन है?", - "actions": "क्रियाएँ", - "cancel": "कैंसिल करें", - "addTitle": "फंक्शन जोड़ें", - "updateTitle": "फ़ंक्शन अपडेट करें", - "delete": "फंक्शन डिलीट करें", - "ok": "ठीक है", - "type": "फंक्शन टाइप", - "showQuery": "क्या इनजेस्ट टाइम फंक्शन है?", - "stream_type": "स्ट्रीम टाइप", - "vrl": "वीआरएल", - "lua": "लुआ", - "params": "पैरामीटर्स", - "associatedWithStream": "स्ट्रीम एसोसिएशन", - "paramsHint": "परम 1, परम 2,...", - "associatedFunctionHeader": "संबद्ध कार्य", - "enrichmentTables": "संवर्धन सारणी", - "addEnrichmentTable": "संवर्धन तालिका जोड़ें", - "updateEnrichmentTable": "संवर्धन तालिका अपडेट करें", - "searchEnrichmentTable": "खोज संवर्धन तालिका", - "uploadCSVFile": "CSV फ़ाइल अपलोड करें", - "selectFunction": "फ़ंक्शन का चयन करें", - "appendData": "मौजूदा संवर्धन तालिका में डेटा जोड़ें", - "javascript": "JavaScript", - "transformType": "Transform Type", - "vrlType": "VRL (Vector Remap Language)", - "jsType": "JavaScript (ES2023)", - "vrlfunction": "VRL Function", - "jsFunctionHint": "Use the `row` object to access and modify log fields. Example: row.new_field = row.existing_field + ' processed';", - "vrlFunctionHint": "Use the `.` to represent the current event. Example: .new_field = .existing_field + ' processed'", - "deleteAssociatedFunction": "Delete Associated Function", - "streamPipeline": "Pipelines", - "streamRouting": "Stream Routing", - "testFunction": "Test Function", - "errorDetails": "Error", - "function_definition": "Function Definition", - "enrichmentTableURL": "Enrichment Table URL", - "urlCannotBeModified": "URL cannot be modified after creation", - "close": "Close", - "filterAll": "All", - "filterFile": "File", - "filterUrl": "URL", - "dataSource": "Data Source", - "uploadFile": "Upload File", - "fromUrl": "From URL", - "addFunction": "Add Function", - "subtitle": "पाइपलाइनों में लागू पुन: उपयोग योग्य VRL फ़ंक्शन", - "clickTestFunctionHint": "ईवेंट देखने के लिए कृपया Test Function पर क्लिक करें", - "pleaseEnterQuery": "कृपया एक क्वेरी दर्ज करें", - "askAIFunctionPlaceholder": "अपने फ़ंक्शन में सहायता के लिए AI से पूछें...", - "enterFunctionPrompt": "फ़ंक्शन जनरेट करने के लिए एक प्रॉम्प्ट दर्ज करें", - "enrichmentTablesSubtitle": "लुकअप तालिकाएँ जो इन्जेस्ट किए गए डेटा को संवर्धित करती हैं", - "jsErrorDetails": "JavaScript त्रुटि विवरण" - }, - "confirmDialog": { - "cancel": "कैंसिल करें", - "ok": "ठीक है", - "loading": "लोड हो रहा है..." - }, - "ingestion": { - "header": "अंतर्ग्रहण", - "passwordLabel": "टोकन रीसेट करें", - "resetTokenBtnLabel": "टोकन रीसेट करें", - "resetRUMTokenLabel": "RUM टोकन रीसेट करें", - "generateRUMTokenLabel": "RUM टोकन जेनरेट करें", - "generateRUMTokenMessage": "अपने संगठन के लिए RUM सक्षम करने के लिए RUM टोकन जेनरेट करें।", - "npmStepTitle": "एनपीएम इंस्टॉलेशन विधि", - "recommendedLabel": "सुझाया गया", - "customLabel": "कस्टम", - "logsLabel": "लॉग्स", - "metricsLabel": "मेट्रिक्स", - "tracesLabel": "निशान", - "subnetMessage": "अल्पविराम से अलग किए गए कई सबनेट दर्ज करें", - "internal": "This Cluster", - "external": "Default", - "internalLabel": "Note: Use this option if the collector is installed in the same cluster as O2", - "redirectionIngestionMsg": "Note: In order to access pages other than IAM, data ingestion must be initiated within the current organization.", - "databaseLabel": "Databases", - "securityLabel": "Security", - "devopsLabel": "DevOps", - "networkingLabel": "Networking", - "serverLabel": "Web Servers", - "messageQueuesLabel": "Message Queues", - "languagesLabel": "Languages/Frameworks", - "otherLabel": "Other", - "sqlserver": "SQL Server", - "postgres": "Postgres", - "oracle": "Oracle", - "mongodb": "MongoDB", - "redis": "Redis", - "couchdb": "CouchDB", - "elasticsearch": "Elasticsearch", - "mysql": "MySQL", - "snowflake": "Snowflake", - "zookeeper": "Zookeeper", - "cassandra": "Cassandra", - "aerospike": "Aerospike", - "dynamodb": "DynamoDB", - "jenkins": "Jenkins", - "ansible": "Ansible", - "terraform": "Terraform", - "gactions": "GitHub Actions", - "python": "Python", - "dotnettracing": ".Net Tracing", - "dotnetlogs": ".Net Logs", - "nodejs": "NodeJS", - "go": "Go", - "rust": "Rust", - "java": "Java", - "fastapi": "FastAPI", - "rabbitmq": "RabbitMQ", - "kafka": "Kafka", - "nats": "NATS", - "netflow": "Netflow", - "airflow": "Airflow", - "cribl": "Cribl", - "vercel": "Vercel", - "heroku": "Heroku", - "databricks": "Databricks", - "kubernetes": "Kubernetes", - "windows": "Windows", - "linux": "Linux", - "awsconfig": "Amazon Web Services(AWS)", - "gcpconfig": "Google Cloud Platform(GCP)", - "azure": "Microsoft Azure", - "tracesotlp": "Traces (OpenTelemetry)", - "rum": "Real User Monitoring", - "falco": "Falco", - "osquery": "Osquery", - "okta": "Okta", - "jumpcloud": "Jumpcloud", - "openvpn": "OpenVPN", - "office365": "Office365", - "gworkspace": "Google Workspace", - "nginx": "Nginx", - "apache": "Apache", - "iis": "IIS", - "pubsub": "Pub/Sub Logs", - "aiLabel": "AI एकीकरण", - "manageTokensBtnLabel": "टोकन प्रबंधित करें", - "orgLevelExplanation": "ये संगठन-स्तरीय इन्जेशन टोकन हैं। ये अलग-अलग उपयोगकर्ताओं से बंधे नहीं होते और इन्हें बनाने वाला उपयोगकर्ता संगठन छोड़ने पर भी काम करते रहेंगे। टोकन का उपयोग केवल इन्जेशन एंडपॉइंट पर किया जा सकता है।", - "orgLevelSummary": "इन्जेशन एंडपॉइंट के लिए संगठन-स्तरीय टोकन।", - "resetDefaultTokenLabel": "टोकन रीसेट करें", - "tokenManagementTitle": "इन्जेशन टोकन प्रबंधित करें", - "defaultTokenBadge": "डिफ़ॉल्ट", - "createTokenBtn": "नया टोकन बनाएँ", - "createTokenTitle": "टोकन बनाएँ", - "searchToken": "टोकन खोजें", - "tokenNameLabel": "नाम", - "tokenDescriptionLabel": "विवरण", - "rotateTokenBtn": "रोटेट करें", - "deleteTokenBtn": "हटाएँ", - "copyTokenBtn": "कॉपी करें", - "copyTokenWarning": "इस टोकन को अभी कॉपी करें। यह फिर से नहीं दिखाया जाएगा।", - "tokenAuthHeader": "प्राधिकरण", - "authHeaderLabel": "प्राधिकरण हेडर (उपयोग के लिए तैयार)", - "authHeaderHelp": "इसे अपने इन्जेशन अनुरोध के प्राधिकरण हेडर में पेस्ट करें — किसी मैन्युअल एन्कोडिंग की आवश्यकता नहीं।", - "copyAuthHeaderBtn": "प्राधिकरण हेडर कॉपी करें", - "copyRawTokenBtn": "रॉ टोकन कॉपी करें", - "newTokenRevealed": "नया टोकन जनरेट किया गया", - "deleteTokenConfirm": "टोकन \"{name}\" हटाएँ? इस टोकन का उपयोग करने वाली पाइपलाइनें काम करना बंद कर देंगी।", - "rotateTokenConfirm": "टोकन \"{name}\" रोटेट करें? इस टोकन का उपयोग करने वाली सभी पाइपलाइनों को नए मान के साथ अद्यतन करना होगा।", - "tokenCreatedSuccess": "टोकन सफलतापूर्वक बनाया गया।", - "tokenRotatedSuccess": "टोकन सफलतापूर्वक रोटेट किया गया।", - "tokenDeletedSuccess": "टोकन सफलतापूर्वक हटाया गया।", - "resetDefaultConfirm": "डिफ़ॉल्ट इन्जेशन टोकन रीसेट करें? इस टोकन का उपयोग करने वाली सभी पाइपलाइनों को अद्यतन करना होगा।", - "tokenFetchError": "टोकन लोड करने में विफल।", - "tokenCreateError": "टोकन बनाने में विफल।", - "tokenRotateError": "टोकन रोटेट करने में विफल।", - "tokenDeleteError": "टोकन हटाने में विफल।", - "noTokensFound": "कोई इन्जेशन टोकन नहीं मिला।", - "createdBy": "द्वारा बनाया गया" - }, - "dashboard": { - "selectField": "फ़ील्ड", - "selectIndex": "स्ट्रीम", - "selectStreamType": "स्ट्रीम टाइप", - "header": "डैशबोर्ड्स", - "add": "नया डैशबोर्ड", - "save": "सेव करें", - "cancel": "कैंसिल करें", - "delete": "डैशबोर्ड डिलीट करें", - "edit": "डैशबोर्ड संपादित करें", - "duplicate": "डुप्लीकेट डैशबोर्ड", - "move_to_another_folder": "दूसरे फोल्डर में ले जाएं", - "search": "डैशबोर्ड खोजें", - "name": "नाम", - "typeDesc": "विवरण", - "createdashboard": "नया डैशबोर्ड", - "updatedashboard": "डैशबोर्ड अपडेट करें", - "nameHolder": "डैशबोर्ड का नाम दर्ज करें", - "typeHolder": "अगर आपको पसंद है तो डैशबोर्ड का वर्णन करें", - "identifier": "आइडेंटिफ़ायर", - "role": "भूमिका", - "description": "विवरण", - "type": "टाइप करें", - "owner": "मालिक", - "created": "बनाया गया", - "actions": "क्रियाएँ", - "nameRequired": "नाम आवश्यक है", - "id": "आईडी", - "goBackToDashboard": "डैशबोर्ड पर वापस जाएं", - "import": "इम्पोर्ट करें", - "setting": "डैशबोर्ड सेटिंग", - "generalSettings": "सामान्य सेटिंग", - "variableSettings": "परिवर्तनीय सेटिंग", - "newVariable": "वेरिएबल जोड़ें", - "generalSettingsTitle": "सामान्य सेटिंग", - "addGeneralSettings": "साधारण", - "extraOptions": "ऑप्शन्स", - "nameOfVariable": "नाम", - "labelOfVariable": "लेबल (वैकल्पिक)", - "ValueOfVariable": "वैल्यू", - "DefaultValue": "डिफ़ॉल्ट मान (वैकल्पिक)", - "typeOfVariable": "वेरिएबल का प्रकार", - "DefaultSize": "डिफ़ॉल्ट अधिकतम रिकॉर्ड आकार (वैकल्पिक)", - "maxRecordSize": "डिफ़ॉल्ट अधिकतम रिकॉर्ड आकार 10 है। आप आवश्यकतानुसार इस मान को अपडेट कर सकते हैं।", - "newFolderBtnLabel": "नया फोल्डर", - "folderLabel": "फोल्डर्स", - "areaLabel": "इलाका", - "areaStackedLabel": "एरिया स्टैक्ड", - "lineLabel": "लाइन", - "barLabel": "बार", - "horizontalLabel": "क्षैतिज", - "stackedLabel": "स्टैक्ड", - "heatmapLabel": "हीटमैप", - "geomapLabel": "जियोमैप", - "hstackedLabel": "एच-स्टैक्ड", - "pieLabel": "पाई", - "donutLabel": "डोनट", - "scatterLabel": "स्कैटर", - "tableLabel": "तालिका", - "metricTextLabel": "मेट्रिक टेक्स्ट", - "oneFieldMessage": "यहां 1 फ़ील्ड जोड़ें", - "maxtwofieldMessage": "यहां अधिकतम 2 फ़ील्ड जोड़ें", - "twoFieldsMessage": "यहां 2 फ़ील्ड जोड़ें", - "oneOrMoreFieldsMessage": "यहां एक या अधिक फ़ील्ड जोड़ें", - "xaxisFieldNAMessage": "X-Axis फ़ील्ड की अनुमति नहीं है", - "oneLabelFieldMessage": "यहां 1 लेबल फ़ील्ड जोड़ें", - "oneValueFieldMessage": "यहां 1 मान फ़ील्ड जोड़ें", - "oneFieldConfigMessage": "1 फ़ील्ड जोड़ें या इसे कॉन्फ़िग से कॉन्फ़िगर करें", - "configLabel": "कॉन्फिग", - "showLegendsLabel": "लीजेंड्स दिखाओ", - "legendsPositionLabel": "महापुरूष स्थितियां", - "unitLabel": "यूनिट", - "basemapLabel": "बेस मैप", - "customunitLabel": "कस्टम यूनिट", - "longitudeLabel": "देशांतर", - "zoomLabel": "ज़ूम", - "legendLabel": "लीजेंड", - "overrideMessage": "सीरीज़ का नाम ओवरराइड करता है। उदाहरण के लिए, {एंडपॉइंट} को एंडपॉइंट के लेबल मान से बदला जाना चाहिए।", - "unsavedMessage": "आपके पास सहेजे नहीं गए परिवर्तन हैं। क्या आप वाकई छोड़ना चाहते हैं?", - "addFieldMessage": "कृपया सूची में से एक फ़ील्ड जोड़ें", - "currentFolderLabel": "मौज़ूदा फोल्डर", - "selectFolderLabel": "फोल्डर चुनें", - "layerType": "लेयर टाइप", - "newDashboard": "नया डैशबोर्ड बनाएं", - "addDashboard": "डैशबोर्ड में जोड़ें", - "dashboardName": "डैशबोर्ड का नाम", - "dashboardDesc": "डैशबोर्ड विवरण", - "panelTitle": "पैनल का शीर्षक", - "selectDashboard": "डैशबोर्ड चुनें", - "importDashboard": "डैशबोर्ड इंपोर्ट करें", - "dropFileMsg": "अपनी फाइल को यहां ड्रॉप करें", - "importURL": "URL से डैशबोर्ड इंपोर्ट करें", - "addURL": "अपना url जोड़ें", - "importJson": "JSON से डैशबोर्ड इंपोर्ट करें", - "jsonObject": "JSON ऑब्जेक्ट", - "openStreetMap": "ओपनस्ट्रीटमैप", - "scatter": "स्कैटर", - "heatmap": "हीटमैप", - "auto": "अपने आप", - "right": "दाएँ", - "bottom": "बॉटम", - "default": "तयशुदा", - "bytes": "बाइट्स", - "kilobytes": "किलोबाइट (kb)", - "megabytes": "मेगाबाइट (mb)", - "bytesPerSecond": "बाइट्स/सेकंड", - "seconds": "सेकंड्स", - "microseconds": "माइक्रोसेकंड (μs)", - "milliseconds": "मिलीसेकंड (ms)", - "percent1": "प्रतिशत (0.0-1.0)", - "percent": "प्रतिशत (0-100)", - "custom": "कस्टम", - "count": "गिनें", - "countDistinct": "गणना (विशिष्ट)", - "sum": "योग", - "avg": "औसत", - "min": "न्यूनतम", - "max": "सर्वाधिक", - "histogram": "हिस्टोग्राम", - "queryValues": "क्वैरी वैल्यू", - "constant": "स्थिरांक", - "textbox": "टेक्स्टबॉक्स", - "newFolder": "नया फोल्डर", - "updateFolder": "फोल्डर अपडेट करें", - "print": "Print Dashboard", - "refresh": "Refresh", - "export": "Export Dashboard", - "share": "Share", - "fullscreen": "Go Fullscreen", - "exitFullscreen": "Exit Fullscreen", - "tabSettings": "Tabs", - "newTab": "टैब जोड़ें", - "tabSettingsTitle": "Tabs Settings", - "adhoclabelOfVariable": "Label", - "multiSelect": "Allow multiple selection", - "selectType": "Selection", - "isSingleSelect": "Single", - "isMultiSelect": "Multiple", - "hideOnDashboard": "Hide On Dashboard", - "escapeSingleQuotes": "Escape Single Quotes", - "worldmapLabel": "Maps", - "zeroOrOneFieldMessage": "Add 0 or 1 field here", - "showAllLegends": "Show All Legends", - "legendsOfCharts": "Legends", - "totalLegends": "Total: {count}", - "noLegendsAvailable": "No legends available", - "wraptext": "Wrap table cells", - "tableTranspose": "Transpose", - "tableDynamicColumns": "Allow Dynamic Columns", - "pagination": "पृष्ठांकन", - "rowsPerPage": "प्रति पृष्ठ पंक्तियाँ", - "rowsPerPageTooltip": "प्रति पृष्ठ प्रदर्शित करने के लिए रिकॉर्ड की डिफ़ॉल्ट संख्या सेट करें", - "showBorder": "Show Axis Border", - "labelPosition": "Value Position", - "labelRotate": "Value Rotate", - "world": "World", - "mapTypeLabel": "Map Type", - "currencyDollar": "Currency - Dollar ($)", - "currencyEuro": "Currency - Euro (€)", - "currencyPound": "Currency - Pound (£)", - "currencyYen": "Currency - Yen (¥)", - "currencyRupees": "Currency - Indian Rupees (₹)", - "latitudeLabel": "Latitude", - "symbolsize": "Symbol Size", - "minimum": "Minimum", - "maximum": "Maximum", - "fixedValue": "Fixed Value", - "overrideMessageExample": "For example, {endpoint} will be replaced with the label value for endpoint.", - "selectDashboardLabel": "Select Dashboard", - "selectTabLabel": "Select Tab", - "numbers": "Numbers", - "localeFormat": "Locale Format", - "nanoseconds": "Nanoseconds (ns)", - "currency": "Currency", - "p99": "P99", - "p95": "P95", - "p90": "P90", - "p50": "P50", - "ad-hoc-variable": "Dynamic variables", - "scheduledReports": "Scheduled Reports", - "newReport": "New Report", - "scheduledDashboards": "Scheduled Dashboards", - "panelHeight": "Panel Height", - "none": "None", - "inside": "Inside", - "insideTop": "Inside Top", - "insideBottom": "Inside Bottom", - "outside": "Outside", - "insideLeft": "Inside Left", - "insideRight": "Inside Right", - "insideTopLeft": "Inside Top Left", - "insideBottomLeft": "Inside Bottom Left", - "insideTopRight": "Inside Top Right", - "insideBottomRight": "Inside Bottom Right", - "top": "Top", - "left": "Left", - "showSymbol": "Show Symbol", - "yes": "Yes", - "no": "No", - "lineInterpolation": "Line Interpolation", - "linear": "Linear", - "smooth": "Smooth", - "stepBefore": "Step Before", - "stepAfter": "Step After", - "stepMiddle": "Step Middle", - "singleColor": "Single Color", - "colorMode": "Background Color", - "searchAcross": "Search Across Folders", - "searchSelf": "Switch to Search across the current Folder", - "searchAll": "Switch to Search Across all Folders", - "folder": "Folder", - "folders": "Folders", - "searchFolder": "Search Folder", - "deleteFolder": "Delete Folder", - "deleteFolderMessage": "Are you sure you want to delete this Folder?", - "searchMsg": "Search for Dashboards across Folders", - "trellisLayout": "Trellis Layout", - "numOfColumns": "Columns per Row", - "trellisTooltip": "This is only applicable when breakdown field is available. Add Breakdown Field to enable Trellis Layout", - "communityDashboard": "Community Dashboards", - "trellisTimeShiftTooltip": "Trellis is not supported for Time Shift Comparison (Comparison Against). Please remove Time Shift Comparison to enable Trellis Layout", - "editJson": "Edit Dashboard JSON", - "stepValue": "Step Value", - "stepValueTooltip": "The interval between datapoints, which must be returned from the range query.", - "stepValueTooltipInfo": "If not specified, the step value from Panel Configuration will be used.", - "stepValueExample": "Eg: 10s, 1h", - "groupMultiYAxisTrellis": "Group multi Y-axis for trellis", - "groupMultiYAxisTrellisTooltipTitle": "Group multi Y-axis for trellis", - "groupMultiYAxisTrellisTooltipEnabled": "Enabled: Groups all Y-axis metrics for the same breakdown value into a single trellis chart", - "groupMultiYAxisTrellisTooltipDisabled": "Disabled: Creates separate trellis charts for each Y-axis metric and breakdown value combination", - "groupMultiYAxisTrellisTooltipExample": "Example: With Y-axis fields [CPU, Memory] and breakdown by [Server A, Server B]:", - "groupMultiYAxisTrellisTooltipEnabledResult": "• Enabled: 2 charts (Server A chart with CPU+Memory, Server B chart with CPU+Memory)", - "groupMultiYAxisTrellisTooltipDisabledResult": "• Disabled: 4 charts (Server A CPU, Server A Memory, Server B CPU, Server B Memory)", - "groupMultiYAxisTrellisTooltipDescription": "When you have multiple Y-axis fields and a breakdown field:", - "legendsType": "Legends Type", - "legendHeight": "Legend Height", - "chartAlign": "Chart Align", - "decimals": "Decimals", - "decimalsMustBeBetween": "Decimals must be between 0 and 100", - "initialView": "Initial View:", - "query": "Query", - "queryLabel": "Query", - "limit": "Limit", - "queryLimit": "Query Limit", - "limitForQueryResult": "Limit for the query result", - "topResults": "Top Results", - "showTopNValues": "Show Top N values", - "topNTooltipTitle": "This is only applicable when breakdown field is available", - "topNTooltipDescription": "Specify the number of Top N values to show when breakdown field is available.", - "addOthersSeries": "Add 'others' series", - "addOthersSeriesTooltip": "Include an 'others' series for values outside the top results when using breakdown fields.", - "connectNullValues": "Connect null values", - "noValueReplacement": "No Value Replacement", - "noValueReplacementTooltip": "What to display when a value is missing for time series", - "gaugeMinValue": "Gauge Min Value", - "gaugeMaxValue": "Gauge Max Value", - "aggregationFunction": "Aggregation Function", - "geoLatLabel": "Latitude Label", - "geoLonLabel": "Longitude Label", - "geoWeightLabel": "Weight Label", - "geoNameLabel": "Name Label", - "geoSymbolSize": "Symbol Size", - "geoEnableRoam": "Enable Zoom/Pan", - "mapsNameLabel": "Location Name Label", - "mapsMapType": "Map Type", - "mapsEnableRoam": "Enable Zoom/Pan", - "tableAggregations": "Table Aggregations", - "promqlTableMode": "PromQL Table Mode", - "visibleColumns": "Visible Columns", - "hiddenColumns": "Hidden Columns", - "stickyFirstColumn": "Sticky First Column", - "stickyColumns": "Sticky Columns", - "showTimestamp": "Show Timestamp Column", - "pageSize": "Rows Per Page", - "enableSorting": "Enable Sorting", - "enableFiltering": "Enable Filtering", - "enablePagination": "Enable Pagination", - "aggregateRows": "Aggregate Time-Series Data", - "yAxisMinTooltipTitle": "Set the minimum value for the Y-axis.", - "yAxisMinTooltipDescription": "This defines the lowest point to display on the chart, but the axis may adjust lower if the data includes smaller values.", - "yAxisMaxTooltipTitle": "Set the maximum value for the Y-axis.", - "yAxisMaxTooltipDescription": "This defines the highest point to display on the chart, but the axis may adjust higher if the data includes larger values.", - "showGridlines": "Show Gridlines", - "lineThickness": "Line Thickness", - "lineThicknessDefault": "Default: 1.5", - "comparisonAgainst": "Comparison Against", - "comparisonAgainstTooltip": "This feature allows you to compare data points from multiple queries over a selected time range. By adjusting the date or time, the system will retrieve corresponding data from different queries, enabling you to observe changes or differences between the selected time periods.", - "addButton": "+ Add", - "fixed": "Fixed", - "byValue": "By Value", - "legendTypeAuto": "Auto", - "legendTypePlain": "Plain", - "legendTypeScroll": "Scroll", - "chartAlignAuto": "Auto", - "chartAlignLeft": "Left", - "chartAlignCenter": "Center", - "markLines": "MarkLines", - "markLinesTooltip": "Show threshold lines on the chart.", - "markLineType": "Type", - "markLineLabel": "Label", - "markLineValue": "Value", - "markLineAdd": "+ Add", - "markLineAverage": "Average", - "markLineMedian": "Median", - "markLineMin": "Min", - "markLineMax": "Max", - "markLineXAxis": "X-Axis", - "markLineYAxis": "Y-Axis", - "colorPalette": "Color palette", - "colorSeriesBy": "Color series by:", - "colorBySeries": "By Series", - "colorDefaultPaletteBySeries": "Default Palette (By Series)", - "colorDefaultPaletteBySeriesSubLabel": "Series with the same name will use the same color", - "colorPaletteClassic": "Palette-Classic", - "colorPaletteClassicSubLabel": "A random color will be used for each series, regardless of its name", - "colorSingleColor": "Single Color", - "colorSingleColorSubLabel": "Set a specific color to all series", - "colorShadesOfSpecificColor": "Shades Of Specific Color", - "colorShadesOfSpecificColorSubLabel": "Different shades of specific color", - "colorByValue": "By Value", - "colorGreenYellowRed": "Green-Yellow-Red (By Value)", - "colorRedYellowGreen": "Red-Yellow-Green (By Value)", - "colorTemperature": "Temperature (By Value)", - "colorPositive": "Positive (By Value)", - "colorNegative": "Negative (By Value)", - "colorLightToDarkBlue": "Light To Dark Blue (By Value)", - "colorPaletteClassicBySeries": "Palette-Classic (By Series)", - "drilldown": "Drilldown", - "drilldownTooltip": "Navigate to a another dashboard or specified URL, carrying over all current variables for seamless data exploration.", - "colorBySeriesTitle": "Color by series", - "colorBySeriesTooltip": "Apply colors to series for better visual distinction in charts. Customize colors for each series to enhance data visualization.", - "editColorBySeries": " Edit color by series", - "applyColorBySeries": " Apply color by series", - "optional": "Optional", - "createDrilldown": "Create Drilldown", - "editDrilldown": "Edit Drilldown", - "goTo": "Go to :", - "selectLogsMode": "Select Logs Mode:", - "enterCustomQuery": "Enter Custom Query:", - "sqlQueryRequired": "SQL query is required", - "enterUrl": "Enter URL", - "variableNameRequired": "Variable name is required.", - "variableNameInvalid": "Only letters, numbers, hyphens (-), and underscores (_) are allowed.", - "atLeastOneTabRequired": "At least one tab is required.", - "atLeastOnePanelRequired": "At least one panel is required.", - "streamTypeRequired": "Stream type is required.", - "streamIndexRequired": "Stream / index is required.", - "fieldRequired": "Field is required.", - "constantValueRequired": "Constant value is required.", - "operatorRequired": "Operator is required.", - "filterValueRequired": "Required", - "labelRequired": "Label is required.", - "optionValueRequired": "Field is required!", - "seriesValueRequired": "Series value is required", - "colorRequired": "Color is required", - "onlyHttpsUrlsAllowed": "Only HTTP(S) URLs are allowed", - "urlRequired": "URL is required", - "folderRequired": "Folder is required", - "dashboardRequired": "Dashboard is required", - "tabRequired": "Tab is required", - "invalidUrl": "Invalid URL", - "selectFolderDrilldown": "Select Folder", - "noFoldersAvailable": "No folders available", - "selectDashboardDrilldown": "Select Dashboard", - "noDashboardsAvailable": "No dashboards available", - "selectTabDrilldown": "Select Tab", - "noTabAvailable": "No tab Available", - "variables": "Variables :", - "passAllCurrentVariables": "Pass all current variables :", - "openInNewTab": "Open in new tab :", - "update": "Update", - "edgeSource": "Edge Source", - "edgeTarget": "Edge Target", - "edgeValue": "Edge Value", - "nodeName": "Node Name", - "nodeValue": "Node Value", - "seriesName": "Series Name", - "seriesValue": "Series Value", - "axisValue": "Axis Value", - "toggleFunctionEditor": "फ़ंक्शन एडिटर टॉगल करें", - "useSavedFunction": "सहेजे गए फ़ंक्शन का उपयोग करें", - "showQueryResults": "क्वेरी परिणाम दिखाएँ", - "hideQueryResults": "क्वेरी परिणाम छिपाएँ", - "multiSqlQueryLabel": "क्वेरी लेबल", - "multiSqlQueryLabelHint": "लेजेंड में इस क्वेरी के लिए कस्टम नाम (उदा., 'Production')", - "multiQueryWarning": "{chartType} के लिए केवल Query 1 रेंडर किया जाता है", - "xAliasInconsistencyWarning": "क्वेरियों में X-axis उपनाम असंगत हैं: कुछ हिस्टोग्राम का उपयोग करते हैं और कुछ नहीं। पूर्वानुमेय परिणामों के लिए सभी क्वेरियों में समान उपनाम प्रकार का उपयोग करें।", - "trellisNotSupportedWithMultiQuery": "कई क्वेरियों के साथ ट्रेलिस लेआउट अक्षम है। ट्रेलिस का उपयोग करने के लिए अतिरिक्त क्वेरियाँ हटाएँ।", - "vrlExtractionTooltip": "चार्ट में निकाले गए VRL फ़ील्ड का उपयोग करने के लिए, एक VRL फ़ंक्शन लिखें और Apply बटन पर क्लिक करें। फ़ील्ड निकाले जाएँगे, जिससे आप उनका उपयोग चार्ट बनाने के लिए कर सकते हैं।", - "errorFetchingFunctions": "फ़ंक्शन प्राप्त करते समय त्रुटि", - "functionAppliedSuccess": "{name} फ़ंक्शन सफलतापूर्वक लागू किया गया।", - "subtitle": "फ़ोल्डरों में डैशबोर्ड बनाएँ, व्यवस्थित करें और साझा करें", - "deleteDashboardConfirmTitle": "डैशबोर्ड हटाएँ", - "deleteDashboardConfirmMsg": "क्या आप वाकई इस डैशबोर्ड को हटाना चाहते हैं?", - "deleteDashboardsConfirmTitle": "डैशबोर्ड हटाएँ", - "deleteDashboardsConfirmMsg": "क्या आप वाकई {count} डैशबोर्ड हटाना चाहते हैं?", - "importCustom": "कस्टम", - "importCustomDesc": "JSON फ़ाइल या URL से इम्पोर्ट करें", - "importTemplates": "टेम्पलेट", - "importTemplatesDesc": "गैलरी से ब्राउज़ और इम्पोर्ट करें", - "searchThisFolder": "यह फ़ोल्डर", - "searchThisFolderTitle": "केवल इस फ़ोल्डर में खोजें", - "searchAllFolders": "सभी फ़ोल्डर", - "searchAllFoldersTitle": "सभी फ़ोल्डरों में खोजें", - "reloadDashboards": "डैशबोर्ड पुनः लोड करें", - "editVariable": "वेरिएबल संपादित करें", - "addOption": "विकल्प जोड़ें", - "addFilter": "फ़िल्टर जोड़ें", - "noDataFound": "कोई डेटा नहीं मिला", - "streamSelectTooltip": "एक स्ट्रीम चुनें या किसी अन्य मान के आधार पर स्ट्रीम को गतिशील रूप से चुनने के लिए $streamVariable जैसे वेरिएबल का उपयोग करें।", - "fieldSelectTooltip": "एक फ़ील्ड चुनें या $fieldVariable जैसे वेरिएबल का उपयोग करें। यदि स्ट्रीम एक वेरिएबल का उपयोग करती है, तो फ़ील्ड सूची खाली होगी - फ़ील्ड नाम मैन्युअल रूप से टाइप करें।", - "filterInfoTooltip": "फ़िल्टर में, आप वर्तमान वेरिएबल के मान को फ़िल्टर करने के लिए किसी अन्य वेरिएबल के मान का उपयोग कर सकते हैं। यह दूसरे वेरिएबल के नाम का उपयोग करके किया जा सकता है। उदाहरण के लिए:", - "defaultSelectAll": "डिफ़ॉल्ट - सभी चुनें", - "escapeSingleQuotesTooltip": "यदि सक्षम है, तो क्वेरी में सिंगल कोट्स एस्केप किए जाएँगे। उदाहरण के लिए, `O'Reilly` जैसा मान `O''Reilly` के रूप में बदल दिया जाएगा।", - "byDefaultSelect": "डिफ़ॉल्ट रूप से चुनें:", - "firstValue": "पहला मान", - "allValues": "सभी मान", - "customValue": "कस्टम", - "showDependencies": "निर्भरताएँ दिखाएँ", - "deleteVariable": "वेरिएबल हटाएँ", - "deleteVariableMsg": "क्या आप वाकई इस वेरिएबल को हटाना चाहते हैं?", - "appliedToTabs": "टैब पर लागू:", - "appliedToPanels": "पैनल पर लागू:", - "selectVariableScope": "वेरिएबल स्कोप चुनें", - "variableScopeHelp": "यदि ग्लोबल चुना गया है तो वेरिएबल सभी टैब और पैनल पर लागू होंगे।", - "pivotOptions": "पिवट विकल्प", - "pivotShowRowTotals": "पंक्ति योग दिखाएँ", - "pivotShowRowTotalsTooltip": "पिवट तालिका के नीचे एक योग पंक्ति प्रदर्शित करें जो प्रत्येक कॉलम के मानों का सारांश देती है", - "pivotShowColTotals": "कॉलम योग दिखाएँ", - "pivotShowColTotalsTooltip": "पिवट तालिका के दाईं ओर एक योग कॉलम प्रदर्शित करें जो प्रत्येक पंक्ति के मानों का सारांश देता है", - "pivotStickyRowTotals": "स्टिकी पंक्ति योग", - "pivotStickyRowTotalsTooltip": "योग पंक्ति को नीचे पिन करें ताकि लंबवत स्क्रॉल करते समय यह दिखाई देती रहे", - "pivotStickyColTotals": "स्टिकी कॉलम योग", - "pivotStickyColTotalsTooltip": "योग कॉलम को दाईं ओर पिन करें ताकि क्षैतिज स्क्रॉल करते समय यह दिखाई देता रहे", - "pivotMissingValue": "अनुपलब्ध मान", - "pivotMissingValueHint": "बिना डेटा वाली कोशिकाओं के लिए दिखाया गया मान", - "axisLabelRotate": "लेबल घुमाएँ", - "axisLabelRotateTooltipText": "जब लेबल लंबे या भीड़ भरे हों तो पठनीयता बेहतर बनाने के लिए x-axis लेबल टेक्स्ट को एक चयनित कोण (डिग्री में) पर घुमाएँ।", - "axisLabelTruncate": "लेबल छोटा करें", - "axisLabelTruncateTooltipText": "x-axis लेबल को निर्दिष्ट चौड़ाई (पिक्सेल में) तक छोटा करें।", - "axisLabelTooltipNotePrefix": "नोट:", - "axisLabelTooltipNoteText": " यह विकल्प टाइम-सीरीज़ x-axis फ़ील्ड के लिए समर्थित नहीं है।", - "selectFile": "फ़ाइल चुनें", - "allFolders": "सभी फ़ोल्डर", - "connectNullValuesTooltip": "अनुपलब्ध मानों में डेटा बिंदुओं को एक रेखा से जोड़ें।", - "columnOrder": "कॉलम क्रम", - "configureColumnOrder": "कॉलम क्रम कॉन्फ़िगर करें", - "columnOrderDescription": "तालिका में कॉलम के प्रदर्शन क्रम को अनुकूलित करें। केवल दृश्यमान कॉलम (दृश्य/छिपे फ़िल्टर के आधार पर) पुनः क्रमित किए जा सकते हैं। उनका क्रम बदलने के लिए कॉलम खींचें।", - "noColumnsOrdered": "कोई कॉलम क्रमित नहीं", - "columnsDefaultOrder": "कॉलम अपने डिफ़ॉल्ट क्रम में प्रदर्शित होंगे", - "moveUp": "ऊपर ले जाएँ", - "moveDown": "नीचे ले जाएँ", - "panelTimeEnabled": "पैनल-विशिष्ट समय सीमा", - "useDefaultTimeTooltip": "सक्षम होने पर, यह पैनल डैशबोर्ड लोड पर ग्लोबल डैशबोर्ड समय के बजाय कॉन्फ़िगर की गई डिफ़ॉल्ट अवधि को अपनी समय सीमा के रूप में उपयोग करेगा।", - "defaultDuration": "डिफ़ॉल्ट अवधि", - "showDynamicFilters": "गतिशील फ़िल्टर दिखाएँ", - "configSectionGeneral": "सामान्य", - "configSectionPromqlTable": "PromQL तालिका मोड", - "configSectionGeographic": "भौगोलिक कॉन्फ़िगरेशन", - "configSectionLegend": "लेजेंड", - "configSectionData": "डेटा", - "configSectionAxis": "अक्ष", - "configSectionLabels": "लेबल", - "configSectionLineStyle": "लाइन शैली", - "configSectionTable": "तालिका", - "configSectionPivotTable": "पिवट तालिका", - "configSectionValueTransformations": "मान रूपांतरण", - "configSectionValueTransformationsTooltip": "स्पष्ट डेटा विज़ुअलाइज़ेशन के लिए मानों को कस्टम टेक्स्ट और बैकग्राउंड रंगों से मैप करके तालिका की पठनीयता बढ़ाएँ।", - "addValueMapping": "मान मैपिंग जोड़ें", - "editValueMapping": "मान मैपिंग संपादित करें", - "valueMappingsTitle": "मान मैपिंग", - "valueMappingType": "प्रकार", - "valueMappingValue": "मान", - "valueMappingRegex": "Regex", - "valueMappingFrom": "से", - "valueMappingTo": "तक", - "valueMappingDisplayValue": "प्रदर्शन मान", - "valueMappingSetColor": "रंग सेट करें", - "valueMappingRemoveColor": "रंग हटाएँ", - "valueMappingAddNew": "+ एक नई मैपिंग जोड़ें", - "valueMappingApply": "लागू करें", - "valueMappingTypeValue": "मान", - "valueMappingTypeRange": "सीमा", - "valueMappingTypeRegex": "Regex", - "configSectionFieldOverrides": "फ़ील्ड ओवरराइड", - "configSectionFieldOverridesTooltip": "उन्नत डेटा विज़ुअलाइज़ेशन के लिए चयनित कॉलम पर इकाइयाँ मैप करें।", - "addFieldOverride": "फ़ील्ड ओवरराइड जोड़ें", - "overrideConfigTitle": "ओवरराइड कॉन्फ़िग", - "overrideConfigFieldLabel": "फ़ील्ड", - "overrideConfigTypeLabel": "प्रकार", - "overrideConfigUnitLabel": "इकाई", - "overrideConfigUniqueValueColor": "अद्वितीय मान रंग", - "overrideConfigTypeUnit": "इकाई", - "overrideConfigTypeUniqueValueColor": "अद्वितीय मान रंग", - "overrideConfigAddNew": "+ फ़ील्ड ओवरराइड जोड़ें", - "overrideConfigSave": "सहेजें", - "configPanelSearchPlaceholder": "कॉन्फ़िग खोजें...", - "configPanelNoResultsFound": "\"{query}\" के लिए कोई सेटिंग नहीं मिली", - "intervalInputPlaceholder": "उदा., 30s, 1m, 5m, 1h", - "placeholderAll": "सभी", - "mapsMapTypeTooltip": "प्रदर्शित करने के लिए मानचित्र प्रकार। डिफ़ॉल्ट: \"world\"", - "configSectionMap": "मानचित्र", - "configSectionGauge": "गेज", - "configSectionLayout": "लेआउट", - "configSectionColors": "रंग", - "configSectionDrilldown": "ड्रिलडाउन", - "configSectionComparison": "तुलना", - "configSectionMarkLines": "मार्क लाइनें", - "configSectionBackground": "बैकग्राउंड", - "editTab": "टैब संपादित करें" - }, - "panel": { - "header": "पैनल", - "add": "पैनल जोड़ें", - "save": "सेव करें", - "cancel": "कैंसिल करें", - "delete": "पैनल हटाएँ", - "search": "सर्च पैनल", - "name": "पैनल का नाम", - "typeDesc": "विवरण", - "createdashboard": "नया पैनल बनाएं", - "nameHolder": "नए पैनल का नाम दर्ज करें", - "typeHolder": "नए पैनल का प्रकार विवरण दर्ज करें", - "editPanel": "पैनल संपादित करें", - "addPanel": "पैनल जोड़ें", - "firstColumn": "पहला कॉलम", - "zAxis": "Z- एक्सिस", - "yAxis": "वाई-एक्सिस (कॉलम)", - "xAxis": "एक्स-एक्सिस (पंक्ति)", - "otherColumn": "अन्य कॉलम", - "config": "कॉन्फिग", - "filters": "फिल्टर्स", - "field": "फ़ील्ड्स", - "discard": "त्यागें", - "edit": "संपादित करें", - "apply": "अप्लाई करें", - "fields": "फ़ील्ड्स", - "layout": "ख़ाका", - "sql": "क्वैरी", - "back": "<< पीछे", - "promQL": "PromQL", - "latitude": "अक्षांश", - "longitude": "देशांतर", - "weight": "वज़न", - "options": "Options", - "createAlert": "Create Alert", - "fullScreen": "Full screen", - "refreshPanel": "Refresh Panel", - "refreshToApplyVariables": "Refresh to apply latest variable changes", - "refresh": "Refresh", - "editLayout": "Edit Layout", - "duplicate": "Duplicate", - "deletePanel": "Delete Panel", - "queryInspector": "Query Inspector", - "downloadAsCSV": "Download as CSV", - "downloadAsJSON": "Download as JSON", - "goToLogs": "Go To Logs", - "moveToAnotherTab": "Move To Another Tab", - "deletePanelTitle": "Delete Panel", - "deletePanelMessage": "Are you sure you want to delete this Panel?", - "movePanelTitle": "Move Panel to Another Tab", - "movePanelMessage": "Select destination tab", - "noQueriesToCreateAlert": "This panel has no queries to create an alert from", - "panelQueryMustHaveStream": "Panel query must have a stream configured", - "unsupportedPanelTypeAlert": "Creating alerts from {type} panels may not work as expected", - "panelDuplicatedSuccessfully": "Panel Duplicated Successfully", - "panelDuplicationFailed": "Panel duplication failed", - "breakdown": "Breakdown", - "metric": "Metric", - "labelFilters": "Label Filters", - "operations": "Operations", - "promQLBuilder": "PromQL Builder", - "joins": "जॉइन", - "addJoin": "Add Join", - "removeJoin": "Remove Join", - "leftJoin": "Left Join", - "innerJoin": "Inner Join", - "rightJoin": "Right Join", - "addClause": "Add Clause", - "removeClause": "Remove Clause", - "SQL": "SQL", - "builder": "Builder", - "custom": "Custom", - "sqlBuilder": "SQL Builder", - "mapname": "Name", - "mapvalue": "Value", - "source": "Source", - "target": "Target", - "value": "Value", - "pivotField": "पिवट फ़ील्ड", - "pivotFieldTooltip": "यहाँ एक डायमेंशन फ़ील्ड खींचें। इसके विशिष्ट मान पिवट तालिका में कॉलम हेडर बन जाते हैं। बहु-स्तरीय पिवटिंग के लिए 3 तक फ़ील्ड की अनुमति है।", - "breakdownTooltipHBar": "स्पष्ट दृश्य के लिए डेटा को Y अक्ष पर विभिन्न अनुभागों में विभाजित करने हेतु इन फ़ील्ड का उपयोग करें।", - "breakdownTooltipDefault": "स्पष्ट दृश्य के लिए डेटा को X अक्ष पर विभिन्न अनुभागों में विभाजित करने हेतु इन फ़ील्ड का उपयोग करें।", - "addToPivot": "पिवट फ़ील्ड में जोड़ें", - "customSql": "कस्टम SQL", - "generatedSql": "जनरेट किया गया SQL", - "enterCustomSql": "अपनी कस्टम SQL क्वेरी दर्ज करें...", - "xAxisShort": "X-अक्ष", - "yAxisShort": "Y-अक्ष", - "rowFields": "पंक्ति फ़ील्ड", - "valueFields": "मान फ़ील्ड", - "noData": "कोई डेटा नहीं" - }, - "home": { - "streams": "स्ट्रीम", - "totalDataIngested": "कुल डेटा निगला गया", - "view": "और देखें >>", - "scheduledAlert": "शेड्यूल किए गए अलर्ट", - "rtAlert": "रीयल टाइम अलर्ट", - "noData": "कोई डेटा इन्जेस्ट नहीं किया गया", - "findIngestion": "लॉग को निगलना करने का तरीका जानें >>", - "ingestionMsg": "ऐसा लगता है कि आपने चयनित संगठन में कोई डेटा नहीं लिया है, ऐसे कई तरीके हैं जिनसे डेटा को निगला जा सकता है, जैसे फ्लुएंटबिट।", - "inestedInSearch": "लॉग सर्च का प्रयास करें", - "searchInDemoOrg": "आप डेमो संगठन पर स्विच करके खोज क्षमताओं का पता लगा सकते हैं, डेमो संगठन पर स्विच कर सकते हैं, शीर्ष पर संगठन ड्रॉपडाउन का उपयोग करके 'डेमो संगठन' का चयन कर सकते हैं। हम डेमो संगठन में डमी डेटा को अंतर्ग्रहण करते रहते हैं।", - "totalDataCompressed": "Compressed Size", - "viewButton": "View", - "noDataAvailable": "No data available", - "indexSizeLbl": "Index Size", - "docsCountLbl": "Events", - "functionTitle": "Functions", - "schedulePipelineTitle": "Scheduled", - "rtPipelineTitle": "Real time", - "pipelineTitle": "Pipelines", - "alertTitle": "Alerts", - "dashboardTitle": "Dashboards", - "streamTotal": "Streams", - "totalDashboard": "Dashboards", - "noDataState": { - "title": "अभी तक कोई डेटा इन्जेस्ट नहीं किया गया", - "description": "इस संगठन को कोई डेटा नहीं मिला है, इसलिए चार्ट करने के लिए कुछ नहीं है। एक बार ईवेंट आना शुरू होने पर, आपका इन्जेशन वॉल्यूम, स्टोरेज और क्वेरी उपयोग यहाँ स्वचालित रूप से दिखाई देगा।", - "logs": "लॉग भेजें", - "logsDesc": "Curl, Filebeat, Fluentbit, Vector और अधिक", - "traces": "ट्रेस भेजें", - "tracesDesc": "OTLP / Jaeger / Zipkin वितरित ट्रेसिंग", - "metrics": "मेट्रिक्स भेजें", - "metricsDesc": "Prometheus, OTel Collector, Telegraf और अधिक", - "or": "या:", - "otel": "OpenTelemetry", - "kubernetes": "Kubernetes", - "aws": "AWS / CloudWatch", - "aiIntegrations": "AI एकीकरण", - "shippers": "लॉग शिपर" - }, - "tabAiAssistant": "O2 Assistant", - "tabOverview": "अवलोकन", - "tabUsage": "उपयोग", - "subtitle": "एक नज़र में आपका ऑब्ज़र्वेबिलिटी वर्कस्पेस" - }, - "billing": { - "header": "उपयोग और बिलिंग", - "plans": "योजनाएँ", - "subtitle": "सरल, पारदर्शी कीमत", - "individuals": "व्यक्तियों के लिए", - "startups": "स्टार्टअप्स के लिए", - "basic": "डेवलपर", - "pro": "अनुभवी", - "business": "बिज़नेस", - "whatIsIncluded": "क्या शामिल है", - "subscribed": "सब्स्क्राइब्ड", - "getStarted": "शुरू करें", - "paymentMethod": "भुगतान का तरीका", - "invoiceHistory": "इनवॉइस हिस्ट्री", - "generatedAt": "जनरेट किया गया", - "details": "विवरण", - "amount": "रकम", - "amountPaid": "भुगतान की गई राशि", - "amountDue": "देय राशि", - "dueDate": "देय तिथि", - "status": "स्टेटस", - "action": "ऐक्शन", - "usage": "उपयोग", - "manageSubscription": "सदस्यता प्रबंधित करें", - "subscriptionCheckout": "सब्सक्रिप्शन चेकआउट", - "everythingDeveloperPlan": "डेवलपर प्लान में सब कुछ, साथ ही:", - "messageDataNotFound": "डेटा नहीं मिला", - "invoiceStartDate": "इनवॉइस शुरू होने की तारीख", - "invoiceEndDate": "इनवॉइस की समाप्ति तिथि", - "downloadInvoice": "इनवॉइस डाउनलोड करें", - "usageLabel": "उपयोग", - "plansLabel": "योजनाएँ", - "invoiceHistoryLabel": "इनवॉइस हिस्ट्री", - "downgradeMessage": "आप सदस्यता योजना को डाउनग्रेड कर रहे हैं। क्या आप वाकई इस कार्रवाई को आगे बढ़ाना चाहते हैं?", - "title": "Simple, transparent pricing", - "captureCardDetail": "To proceed, please provide your credit card details. You will not be charged at this stage. Charges will only apply when you subscribe to a paid plan. Click the button below to proceed.", - "proceedtoPaymentDetail": "Proceed to Payment Details", - "upgradeNow": "Upgrade Now", - "subscribe": "Subscribe", - "cancelSubscription": "Cancel Subscription", - "features": "FEATURES", - "included": "What's included?", - "proPlanSubtitle": "Custom solutions for small teams", - "unlimitedNote": "Unlimited users, logs, metrics, traces & more.", - "paymentNote": "Payment calculated by usage at the end of monthly billing cycle.", - "proPlanLabel": "Pay as you go", - "contactLabel": "Contact Sales", - "enterpriseLabel": "Enterprise Plan", - "enterpriseSubtitle": "Advanced functionality and support for Enterprise demands", - "discountTag": "On Discount", - "enterpriseNote": "High volume needs? Let's talk scale! Contact us for tailored solutions.", - "contactSupport": "Contact Support", - "totalUsage": "Total Usage", - "aiCredits": "AI क्रेडिट", - "aiModeFree": "निःशुल्क", - "aiModePayAsYouGo": "उपयोग के अनुसार भुगतान", - "aiModeExhausted": "समाप्त", - "aiExhaustedMessage": "AI सुविधाओं का उपयोग जारी रखने के लिए सदस्यता लें", - "aiPaygMessage": "निःशुल्क क्रेडिट समाप्त — उपयोग सदस्यता पर बिल किया गया", - "billingGroup": { - "tabLabel": "बिलिंग समूह", - "inviteOrgButton": "संगठन आमंत्रित करें", - "viewUsage": "उपयोग देखें", - "statTotal": "कुल चाइल्ड संगठन", - "statActive": "सक्रिय", - "statPending": "लंबित आमंत्रण", - "statusActive": "सक्रिय", - "statusPending": "लंबित", - "filterAll": "सभी", - "childOrgIdColumn": "चाइल्ड संगठन पहचानकर्ता", - "childOrgNameColumn": "चाइल्ड संगठन नाम", - "orgColumn": "संगठन", - "orgIdColumn": "संगठन पहचानकर्ता", - "actionsColumn": "क्रियाएँ", - "dateColumn": "दिनांक", - "cancel": "रद्द करें", - "invitedBy": "आमंत्रित किया गया", - "acceptedBy": "स्वीकार किया गया", - "addedOnCreation": "निर्माण पर जोड़ा गया", - "memberSince": "सदस्य कब से", - "noMembers": "अभी तक कोई सदस्य संगठन नहीं", - "inviteTitle": "एक संगठन आमंत्रित करें", - "inviteOrgIdLabel": "संगठन पहचानकर्ता", - "inviteOrgIdPlaceholder": "संगठन पहचानकर्ता दर्ज करें", - "inviteOrgIdRequired": "संगठन पहचानकर्ता आवश्यक है", - "sendInvite": "आमंत्रण भेजें", - "inviteSent": "आमंत्रण सफलतापूर्वक भेजा गया", - "inviteSameOrg": "एक संगठन स्वयं को आमंत्रित नहीं कर सकता", - "childHeadline": "बिलिंग प्रबंधित द्वारा", - "childHeroSub": "आपका उपयोग इस संगठन को बिल किया जाता है। योजना परिवर्तन और चालान मूल संगठन द्वारा संभाले जाते हैं — यहाँ प्रबंधित करने के लिए कुछ नहीं है।", - "invitesPanelHint": "इन संगठनों ने आपको अपने बिलिंग समूह में शामिल होने के लिए आमंत्रित किया है। यदि आप स्वीकार करते हैं, तो इस संगठन का उपयोग उन्हें बिल किया जाएगा।", - "inviteTabPrompt": "अपने बिलिंग समूह में शामिल होने के लिए किसी अन्य संगठन को आमंत्रित करें। उनका उपयोग इस संगठन को बिल किया जाएगा।", - "emptyTitle": "बिलिंग समूह शुरू करें", - "notEnabledTitle": "बिलिंग समूह उपलब्ध नहीं", - "notEnabledDesc": "यह संगठन बिलिंग समूह शुरू करने के लिए सक्षम नहीं है। यदि आपको इस सुविधा की आवश्यकता है तो अपने व्यवस्थापक से संपर्क करें।", - "chipConsolidatedBill": "एक समेकित बिल", - "chipLinkOrgs": "कई संगठन लिंक करें", - "accept": "स्वीकार करें", - "reject": "अस्वीकार करें", - "inviteAccepted": "आमंत्रण सफलतापूर्वक स्वीकार किया गया", - "inviteRejected": "आमंत्रण सफलतापूर्वक अस्वीकार किया गया", - "plansManagedTitle": "बिलिंग मूल संगठन द्वारा प्रबंधित", - "plansManagedDescription": "इस संगठन की बिलिंग {name} ({id}) द्वारा प्रबंधित की जाती है। योजना परिवर्तन मूल संगठन द्वारा संभाले जाते हैं।", - "chipPlanManaged": "योजना मूल द्वारा प्रबंधित", - "chipNoInvoices": "कोई अलग चालान नहीं", - "viewOrgGroup": "संगठन समूह देखें", - "usageMemberLabel": "सदस्य संगठन", - "usageAllMembers": "सभी सदस्य", - "currentOrgTitle": "वर्तमान संगठन", - "memberOrgsTitle": "सदस्य संगठन", - "searchMemberOrg": "संगठन खोजें", - "noMemberMatch": "कोई मेल खाने वाला संगठन नहीं" - } - }, - "message": { - "ServerInternalError": "त्रुटि: कुछ गलत हुआ। आंतरिक सर्वर त्रुटि।", - "SearchSQLNotValid": "त्रुटि: मान्य एसक्यूएल नहीं है।", - "SearchStreamNotFound": "त्रुटि: खोज स्ट्रीम नहीं मिली।", - "FullTextSearchFieldNotFound": "त्रुटि: पूर्ण पाठ खोज फ़ील्ड नहीं मिला।", - "SearchFieldNotFound": "त्रुटि: खोज फ़ील्ड नहीं मिला।", - "SearchFunctionNotDefined": "त्रुटि: खोज फ़ंक्शन परिभाषित नहीं है।", - "SearchParquetFileNotFound": "त्रुटि: खोज लकड़ी की छत फ़ाइल नहीं मिली।", - "SearchFieldHasNoCompatibleDataType": "त्रुटि: खोज फ़ाइल में कोई संगत डेटा प्रकार नहीं है।", - "SearchSQLExecuteError": "त्रुटि: SQL निष्पादन त्रुटि खोजें।", - "SearchSQLCancelled": "Error: Search SQL was cancelled." - }, - "alerts": { - "header": "अलर्ट्स", - "add": "अलर्ट जोड़ें", - "edit": "संपादित करें", - "search": "सर्च अलर्ट", - "name": "नाम", - "save": "सेव करें", - "sql": "क्वैरी", - "realTime": "रीयल टाइम", - "scheduled": "शेड्यूल किया गया", - "condition": "कंडीशन", - "interval": "आवृत्ति जिस पर अलर्ट का मूल्यांकन किया जाता है", - "destination": "डेस्टिनेशन", - "stream_name": "स्ट्रीम का नाम", - "actions": "क्रियाएँ", - "cancel": "कैंसिल करें", - "slack": "स्लैक", - "prom_am": "अलर्ट मैनेजर", - "addTitle": "अलर्ट जोड़ें", - "updateTitle": "अलर्ट अपडेट करें", - "delete": "डिलीट करें", - "summary": { - "title": "सारांश", - "alertName": "अलर्ट नाम", - "streamInfo": "डेटा स्रोत", - "alertType": "अलर्ट प्रकार", - "queryCondition": "क्वेरी की शर्त", - "configureAlert": "Configure your alert to see a summary", - "monitors": "Monitors", - "from": "from", - "inRealTime": "in real-time", - "ofData": "of data", - "triggersWhen": "Triggers when", - "queryConditions": "query conditions", - "areMet": "are met", - "orMore": "or more", - "orLess": "or less", - "equalTo": "equal to", - "notEqualTo": "not equal to", - "eventsDetected": "events detected", - "sendsTo": "Sends to", - "noDestination": "No destination", - "notSetupYet": "(not set up yet)", - "cooldown": "Cooldown", - "betweenAlerts": "between alerts", - "noCooldown": "No cooldown", - "minute": "minute", - "minutes": "minutes", - "hour": "hour", - "hours": "hours", - "plainEnglish": { - "realTime": "Alert me immediately when matching events occur in real-time", - "eventsPlural": "events", - "eventSingular": "event", - "moreThan": "more than", - "exactly": "exactly", - "orFewer": "or fewer", - "fewerThan": "fewer than", - "not": "not", - "occurInAny": "occur in any", - "period": "period", - "alertMeWhen": "Alert me when", - "butNoMoreThan": ", but no more than once every", - "defaultConditions": "Alert me when the configured conditions are met" - }, - "configuringRealTime": "इसके लिए एक रीयल-टाइम अलर्ट कॉन्फ़िगर किया जा रहा है", - "configuringScheduled": "इसके लिए एक निर्धारित अलर्ट कॉन्फ़िगर किया जा रहा है" - }, - "incidents": { - "search": "घटनाएं खोजें...", - "sreChat": "SRE सहायक से पूछें", - "title": "Incidents", - "header": "Alert Incidents", - "noIncidents": "No incidents found", - "id": "ID", - "status": "Status", - "severity": "Severity", - "alertCount": "Alerts", - "firstAlertAt": "First Alert", - "lastAlertAt": "Last Alert", - "resolvedAt": "Resolved At", - "title_field": "Title", - "correlationKey": "Correlation Key", - "stableDimensions": "Dimensions", - "topology": "Topology", - "upstreamServices": "Upstream Services", - "downstreamServices": "Downstream Services", - "correlatedAlerts": "Correlated Alerts", - "alertName": "Alert Name", - "alertFiredAt": "Fired At", - "correlationReason": "Correlation Reason", - "actions": "Actions", - "acknowledge": "Acknowledge", - "resolve": "Resolve", - "reopen": "Reopen", - "viewDetails": "View Details", - "statusOpen": "Open", - "statusAcknowledged": "Acknowledged", - "statusResolved": "Resolved", - "severityP1": "P1 - Critical", - "severityP2": "P2 - High", - "severityP3": "P3 - Medium", - "severityP4": "P4 - Low", - "correlationServiceDiscovery": "Service Discovery", - "correlationManualExtraction": "Manual Extraction", - "correlationTemporal": "Temporal", - "filterByStatus": "Filter by status", - "allStatuses": "All Statuses", - "loading": "Loading incidents...", - "errorLoading": "Failed to load incidents", - "statusUpdated": "Incident status updated", - "statusUpdateFailed": "Failed to update incident status", - "rootCauseAnalysis": "Root Cause Analysis", - "analyzeRca": "Analyze", - "rcaInProgress": "Analyzing root cause...", - "rcaCompleted": "Root cause analysis completed", - "noRcaYet": "No root cause analysis available. Click 'Analyze' to start.", - "subtitle": "घटना प्रबंधन और ट्रैकिंग", - "correlationPrimaryMatch": "प्राथमिक मिलान", - "correlationSecondaryMatch": "द्वितीयक मिलान", - "correlationServiceDiscoveryTooltip": "सेवा खोज से पूर्व-गणना की गई सेवा पहचान का उपयोग करके सहसंबद्ध", - "correlationPrimaryMatchTooltip": "प्राथमिक मिलान मानदंड द्वारा सहसंबद्ध", - "correlationSecondaryMatchTooltip": "द्वितीयक मिलान मानदंड द्वारा सहसंबद्ध", - "correlationAlertId": "Alert ID", - "correlationAlertIdTooltip": "कोई मेल खाने वाले आयाम नहीं मिले — Alert ID द्वारा पृथक किया गया", - "correlatedByServiceDiscovery": "आयाम", - "correlatedBySemanticGroups": "आयाम", - "correlatedByAlertId": "Alert ID", - "goBack": "वापस जाएँ", - "incident": "घटना", - "uniqueAlerts": "अद्वितीय अलर्ट", - "relatedAlerts": "संबंधित अलर्ट", - "alertTriggers": "अलर्ट ट्रिगर", - "incidentTimeline": "घटना समयरेखा", - "incidentDetails": "घटना विवरण", - "incidentId": "Incident ID", - "incidentName": "घटना नाम", - "initialTrigger": "प्रारंभिक ट्रिगर", - "noDimensionsAvailable": "कोई आयाम उपलब्ध नहीं", - "noAlertDetailsAvailable": "कोई अलर्ट विवरण उपलब्ध नहीं", - "clickOnTriggerToViewDetails": "विवरण देखने के लिए तालिका में एक ट्रिगर पर क्लिक करें", - "refreshCorrelatedData": "सहसंबद्ध डेटा रिफ़्रेश करें", - "showingCorrelatedLogs": "घटना समय-सीमा से सहसंबद्ध लॉग दिखाए जा रहे हैं", - "showingCorrelatedMetrics": "घटना समय-सीमा से सहसंबद्ध मेट्रिक्स दिखाए जा रहे हैं", - "showingCorrelatedTraces": "घटना समय-सीमा से सहसंबद्ध ट्रेस दिखाए जा रहे हैं", - "incidentTitleUpdatedSuccess": "घटना शीर्षक सफलतापूर्वक अद्यतन किया गया", - "markAsAcknowledgedTooltip": "घटना को स्वीकृत और कार्य में के रूप में चिह्नित करें", - "markAsResolvedTooltip": "घटना को हल किए गए के रूप में चिह्नित करें और इसे बंद करें", - "reopenIncidentTooltip": "इस हल की गई घटना को फिर से खोलें", - "editIncidentTitleTooltip": "घटना शीर्षक संपादित करें", - "firedTimes": "{count} बार ट्रिगर हुआ", - "incidentAnalysis": "घटना विश्लेषण", - "noAlertActivityData": "कोई अलर्ट गतिविधि डेटा नहीं" - }, - "clone": "Clone alert", - "move": "Move alert", - "triggerAlert": "Trigger", - "alertTriggeredSuccess": "Alert triggered successfully", - "column": "Column", - "alertType": "Alert Type", - "streamType": "Stream Type", - "state": "State", - "minutes": "Minutes", - "hours": "Hours", - "seconds": "Seconds", - "times": "Times", - "events": "Events", - "custom": "Custom", - "standard": "Standard", - "quick": "Quick Mode", - "promql": "PromQL", - "trigger": "Trigger", - "period": "Look back window", - "frequency": "Check every", - "threshold": "Alert when count is", - "silenceNotification": "Cooldown period", - "multiWindow": "Compare with past", - "multiWindowSubLabel": "Compare current results with data from another time period", - "searchDestinationType": "Search destination types...", - "customDestination": "Custom Destination", - "customDestinationDescription": "Configure a custom HTTP endpoint or email destination", - "noDestinationTypesFound": "No destination types found", - "clearSearch": "Clear search", - "popular": "Popular", - "testIdleMessage": "Click 'Test' to verify your destination configuration", - "destinationPreview": "Destination Preview", - "template": "Template Override", - "additionalVariables": "Additional Variables", - "testSuccessMessage": "Test successful! Your destination is configured correctly.", - "testFailedMessage": "Test failed. Please check your configuration and try again.", - "testInProgress": "Testing destination...", - "sendingNotification": "Sending test notification to verify connectivity", - "testErrorDNS": "DNS resolution failed. Please check the webhook URL or hostname.", - "testErrorConnection": "Connection refused. Please verify the URL and ensure the service is reachable.", - "testErrorTimeout": "Request timed out. The destination service may be slow or unreachable.", - "testErrorSSL": "SSL/TLS certificate error. Please verify the certificate or disable SSL verification.", - "testErrorGeneric": "Test failed with an error. Check the details below.", - "testErrorClientError": "Client error (4xx). Please check your credentials and configuration.", - "testErrorServerError": "Server error (5xx). The destination service is experiencing issues.", - "viewDetails": "View Details", - "error": "Error", - "httpStatus": "HTTP Status", - "responseBody": "Response Body", - "responseHeaders": "Response Headers", - "retry": "Retry", - "suggestCheckUrl": "Please verify the webhook URL is correct and reachable.", - "suggestCheckFirewall": "Check your firewall settings and ensure the destination service is accessible.", - "suggestCheckCredentials": "Please verify your API credentials are correct.", - "suggestCheckPermissions": "Check that your credentials have the necessary permissions.", - "suggestCheckEndpoint": "Please verify the endpoint URL is correct.", - "suggestRateLimit": "You've exceeded the rate limit. Please wait before retrying.", - "suggestServerIssue": "The destination service is experiencing issues. Please try again later.", - "description": "Description", - "discord": "Discord", - "msteams": "Microsoft Teams", - "pagerduty": "PagerDuty", - "opsgenie": "Opsgenie", - "servicenow": "ServiceNow", - "cloneTitle": "Clone alert", - "start": "start", - "pause": "Pause", - "groupBy": "Group by", - "row": "Row Template", - "preview": "Preview", - "crontitle": "Enable Cron", - "lastTriggered": "Last Triggered At", - "importedFromPanel": "Query imported from dashboard panel: \"{panelTitle}\"", - "lastSatisfied": "Last Satisfied At", - "owner": "Owner", - "title": "Title", - "createFunction": "Create Function", - "newFunctionAssociationMsg": "Note: The function will be created, then you will be redirected to the previous form to associate the newly created function with the pipeline.", - "createdBy": "Created By", - "createdAt": "Created At", - "lastRunAt": "Last Run At", - "lastSuccessfulAt": "Last Successfull At", - "status": "Status", - "numOfEvents": "Number of Events", - "view": "View", - "webhook": "Web Hook", - "email": "Email", - "action": "Action", - "all": "All", - "history": "Alert History", - "searcHistory": "Enter Alert Name", - "deduplication": { - "title": "Prevent Duplicate Alerts", - "subtitle": "Avoid sending the same alert multiple times by grouping similar alerts together.", - "enable": "Avoid duplicate alerts", - "fingerprintFields": "Group similar alerts by", - "fingerprintFieldsHint": "Select fields that make alerts similar (e.g., hostname, service). Leave empty to auto-detect based on your query.", - "fingerprintFieldsTooltip": "Choose which fields should match for alerts to be considered duplicates. For example, selecting 'hostname' means alerts from the same host will be grouped together. Different alert types (e.g., High CPU vs High Memory) are never grouped, even if they come from the same host. Leave empty for automatic detection based on your query type.", - "timeWindow": "Consider alerts identical within", - "timeWindowHint": "Time period to group similar alerts. Leave empty to match your check interval.", - "timeWindowTooltip": "How long to remember recent alerts for grouping. If a similar alert happens within this time, it won't be sent again. Leave empty to use your alert's check interval.", - "advancedGrouping": "Advanced Grouping Options", - "enableGrouping": "Enable Grouping", - "maxGroupSize": "Max Group Size", - "maxGroupSizeTooltip": "Maximum number of deduplicated alerts to group together before sending a notification. Prevents overwhelming notifications when many similar alerts fire simultaneously.", - "sendStrategy": "Send Strategy", - "sendStrategyTooltip": "How to send grouped alerts:
• First with count: Send first alert with total count
• Summary: Send aggregated summary
• All: Send all alerts in one notification", - "sendStrategyFirstWithCount": "First with count", - "sendStrategySummary": "Summary", - "sendStrategyAll": "All", - "groupWaitTime": "Group Wait Time (seconds)", - "groupWaitTimeTooltip": "Time to wait and collect similar alerts before sending a grouped notification. Allows batching of alerts that occur in quick succession." - }, - "correlation": { - "title": "Alert Correlation", - "description": "Configure how alerts are correlated and deduplicated across the organization. Alerts with matching fingerprint values will be grouped together.", - "semanticFieldNote": "Note: Semantic field mappings are configured in the Service Identity tab.", - "enableOrgLevel": "Enable Organization-Level Deduplication", - "enableOrgLevelTooltip": "Enable deduplication and correlation features for all alerts in this organization", - "enableCrossAlert": "Enable Cross-Alert Deduplication", - "enableCrossAlertTooltip": "Allow different alerts to deduplicate each other when they share the same fingerprint", - "fingerprintGroups": "Cross-Alert Fingerprint Groups", - "fingerprintGroupsTooltip": "Select which semantic groups to use for cross-alert fingerprinting. Alerts will be deduplicated if they share the same values for these dimensions.", - "fingerprintGroupsHint": "Select at least one semantic group for cross-alert deduplication", - "fingerprintGroupsRequired": "At least one semantic group must be selected", - "defaultWindow": "Default Correlation Window (minutes)", - "defaultWindowTooltip": "In absence of semantic field match, alerts and data from given duration is considered related", - "defaultWindowDescription": "In absence of semantic field match, alerts and data from given duration is considered related", - "defaultWindowPlaceholder": "Use alert period by default", - "cancelButton": "Cancel", - "saveButton": "Save" - }, - "placeholders": { - "typeSomething": "Type something", - "value": "Value", - "selectColumn": "Select column", - "searchField": "Search for a field", - "savedFunctions": "Saved functions", - "autoUsesCheckInterval": "Auto (uses check interval)" - }, - "steps": { - "alertSetup": "Alert Setup", - "conditions": "Conditions", - "compareWithPast": "Compare with Past", - "alertSettings": "Alert Settings", - "deduplication": "Deduplication", - "advanced": "Advanced" - }, - "stepCaptions": { - "alertSetup": "Set the stage for your alert", - "conditions": "What should trigger the alert", - "compareWithPast": "Compare current results with data from another time period", - "alertSettings": "Set your alert rules and choose how you'd like to be notified.", - "deduplication": "Avoid sending the same alert multiple times by grouping similar alerts together.", - "advanced": "Context variables, description, and row template" - }, - "noHistory": "No alert history found", - "totalEvaluations": "Total Evaluations", - "firingCount": "Firing Count", - "currentState": "Current State", - "lastEvaluation": "Last Evaluation", - "alertHistory": "Alert History", - "noHistoryData": "No alert history data available", - "avgEvaluationTime": "Avg Evaluation Time", - "successRate": "Success Rate", - "loadMore": "Load More", - "failedToFetchHistory": "Failed to fetch alert history", - "insights": { - "title": "Alert Insights", - "badge": "Interactive Analysis", - "tabs": { - "overview": "Overview", - "frequency": "Frequency & Dedup", - "correlation": "Errors & Storms Detection", - "quality": "Alert Quality" - }, - "filters": { - "failedOnly": "Failed Only", - "failedOnlyTooltip": "Show only failed alert executions", - "silenced": "Silenced", - "silencedTooltip": "Show only silenced alerts", - "clearAll": "Clear All" - }, - "tip": { - "title": "Tip:", - "message": "Right-click on charts to create filters. Zoom on timeline to filter by time range. Use toggles to filter by status." - }, - "actions": { - "actionsFor": "Actions for:", - "configureDedup": "Configure Dedup", - "configureDedupTooltip": "Configure deduplication for this alert", - "editAlert": "Edit Alert", - "editAlertTooltip": "Edit alert configuration", - "viewHistory": "View History", - "viewHistoryTooltip": "View execution history for this alert" - }, - "loading": { - "dashboardConfig": "Loading dashboard configuration...", - "refreshing": "Refreshing dashboard..." - } - }, - "subtitle": "अलर्ट नियम और सूचना चैनल", - "searchThisFolder": "यह फ़ोल्डर", - "searchAllFolders": "सभी फ़ोल्डर", - "streamConfig": "स्ट्रीम कॉन्फ़िग", - "alertRules": "अलर्ट नियम", - "noTemplatesMsg": "ऐसा लगता है कि आपने अभी तक कोई टेम्पलेट नहीं बनाया है। एक अलर्ट बनाने के लिए, आपके पास कम से कम एक गंतव्य और एक टेम्पलेट होना आवश्यक है", - "createTemplateBtn": "टेम्पलेट बनाएँ", - "noDestinationsMsg": "ऐसा लगता है कि आपने अभी तक कोई गंतव्य नहीं बनाया है। एक अलर्ट बनाने के लिए, आपके पास कम से कम एक गंतव्य और एक टेम्पलेट होना आवश्यक है", - "createDestinationBtn": "गंतव्य बनाएँ", - "addConditions": "शर्तें जोड़ें", - "addCondition": "शर्त जोड़ें", - "sqlEditor": "SQL एडिटर", - "promqlEditor": "PromQL एडिटर", - "conditionOf": "में से", - "conditionIs": "है", - "matchingTypeFound": "मेल खाने वाले {type} मिले", - "matchingMetricsFound": "मेल खाने वाले मेट्रिक्स मिले", - "metricsValueFieldTooltip": "Metrics स्ट्रीम अपना माप डिफ़ॉल्ट रूप से \"value\" फ़ील्ड में संग्रहीत करती हैं", - "howOftenCheckTooltip": "इस अलर्ट शर्त को कितनी बार जाँचना है", - "alertIfNoOfEvents": "अलर्ट करें यदि ईवेंट की संख्या", - "alertIfValueIs": "अलर्ट करें यदि मान है", - "havingSeries": "श्रृंखला वाले", - "clearMultiWindowsTitle": "मल्टी-विंडो साफ़ करें?", - "vrlEditor": "VRL एडिटर", - "generateVRL": "VRL जनरेट करें", - "applyVRL": "VRL लागू करें", - "runQuery": "क्वेरी चलाएँ", - "onStream": "पर", - "streamLabel": "स्ट्रीम", - "noStreamSelected": "कोई स्ट्रीम चयनित नहीं", - "resultsIncludeAllWindows": "परिणामों में सभी मल्टी-विंडो जोड़ शामिल हैं", - "runQueryForOutput": "आउटपुट देखने के लिए कृपया Run Query पर क्लिक करें", - "applyVRLForOutput": "संयुक्त आउटपुट देखने के लिए कृपया Apply VRL पर क्लिक करें", - "saveAlert": "अलर्ट सहेजें", - "anomalyDetection": "असामान्यताएँ", - "newAnomalyDetection": "नई असामान्यता", - "editAnomalyDetection": "असामान्यता पहचान संपादित करें", - "updateAnomalyDetection": "असामान्यता पहचान अद्यतन करें:", - "anomalyDetectionSubtitle": "मशीन लर्निंग का उपयोग करके अपने ऑब्ज़र्वेबिलिटी डेटा में असामान्यताओं का पता लगाएँ", - "anomalyDetectionConfig": "पहचान कॉन्फ़िग", - "alerting": "अलर्टिंग", - "saveAndTrain": "सहेजें और प्रशिक्षित करें", - "anomalyCreated": "असामान्यता पहचान कॉन्फ़िग बनाया गया। प्रशिक्षण शीघ्र ही शुरू होगा।", - "anomalyStepCaptions": { - "alertSetup": "अपने डिटेक्टर का नाम रखें और निगरानी के लिए एक स्ट्रीम चुनें", - "detectionConfig": "क्वेरी और पहचान पैरामीटर कॉन्फ़िगर करें", - "alerting": "असामान्यताओं का पता चलने पर सूचनाएँ सेट करें" - }, - "detectionInterval": "पहचान अंतराल", - "trainingWindow": "प्रशिक्षण विंडो", - "sensitivity": "संवेदनशीलता", - "sensitivityHint": "उच्च प्रतिशतक = कम अलर्ट। केवल सबसे चरम असामान्यताएँ चिह्नित की जाती हैं।", - "queryMode": "क्वेरी मोड", - "detectionFunction": "पहचान फ़ंक्शन", - "trained": "प्रशिक्षित", - "notTrained": "प्रशिक्षित नहीं", - "lastDetection": "अंतिम पहचान", - "nextRun": "अगला रन", - "triggerTraining": "प्रशिक्षण ट्रिगर करें", - "retraining": "पुनः प्रशिक्षण...", - "sqlPreview": "SQL पूर्वावलोकन", - "configSummary": "सारांश", - "anomalyStatus": { - "waiting": "प्रतीक्षारत", - "training": "प्रशिक्षण", - "ready": "तैयार", - "failed": "विफल", - "disabled": "अक्षम" - }, - "aggregation_threshold": "अलर्ट करें यदि कोई समूह", - "thresholdDynamic": { - "alertMeWhen": "मुझे अलर्ट करें जब", - "metricTypes": { - "resultsPassedFilter": "परिणाम फ़िल्टर पास हुए", - "distinctGroupsAffected": "विशिष्ट समूह प्रभावित हुए", - "metricsMatchCriteria": "श्रृंखला मानदंड से मेल खाती हैं", - "matchingLogsFound": "मेल खाने वाले लॉग मिले", - "groupsPassFilter": "समूह फ़िल्टर मानदंड पास करते हैं", - "distinctGroups": "विशिष्ट समूह मिले", - "resultRows": "परिणाम पंक्तियाँ लौटाई गईं", - "timeSeries": "सक्रिय टाइम सीरीज़ मिलीं", - "matchingRecords": "मेल खाने वाले रिकॉर्ड मिले", - "groupsWithHaving": "समूह शर्तों से मेल खाते हैं", - "uniqueGroups": "अद्वितीय समूह", - "events": "ईवेंट शर्तों से मेल खाते हैं", - "aggregatedValue": "शर्तों से मेल खाते हैं" - }, - "contextLabels": { - "groupedBy": "के अनुसार समूहित:", - "havingConditions": "HAVING शर्तें:" - } - }, - "importedFromPattern": "लॉग पैटर्न से अलर्ट पूर्व-भरा गया", - "importedFromAnomalyPattern": "असामान्य लॉग पैटर्न से अलर्ट पूर्व-भरा गया — तात्कालिकता सेटिंग्स की समीक्षा करें", - "lastTrainedAt": "अंतिम प्रशिक्षण समय", - "alertDetails": { - "alertName": "अलर्ट नाम", - "sqlQuery": "SQL क्वेरी", - "promqlQuery": "PromQL क्वेरी", - "conditions": "शर्तें", - "copy": "कॉपी करें", - "noCondition": "कोई शर्त नहीं", - "noDescription": "कोई विवरण नहीं", - "evaluationHistory": "मूल्यांकन इतिहास", - "loadingHistory": "इतिहास लोड हो रहा है...", - "noHistoryAvailable": "इस अलर्ट के लिए कोई मूल्यांकन इतिहास उपलब्ध नहीं", - "results": "परिणाम" - }, - "historyTable": { - "timestamp": "टाइमस्टैम्प", - "status": "स्थिति", - "evaluationTime": "मूल्यांकन (s)", - "queryTime": "क्वेरी (ms)", - "error": "त्रुटि" - }, - "back": "पीछे", - "continue": "जारी रखें", - "wouldTrigger": "ट्रिगर होगा", - "wouldNotTrigger": "ट्रिगर नहीं होगा", - "queryBuilder": "बिल्डर", - "groupByHelp": { - "description": "प्रत्येक अद्वितीय मान के लिए अलग अलर्ट बनाने हेतु एकत्रित डेटा को विशिष्ट फ़ील्ड के अनुसार समूहित करें।", - "example": "उदाहरण: प्रति सर्वर अलग-अलग अलर्ट पाने के लिए \"hostname\" के अनुसार समूहित करें, या त्रुटियों को अलग से ट्रैक करने के लिए \"status_code\" के अनुसार।" - }, - "conditions": { - "condition": "शर्त", - "conditionGroup": "शर्त समूह", - "addConditionTooltip": "इस समूह में एक नई शर्त जोड़ें", - "addConditionGroupTooltip": "एक नेस्टेड शर्त समूह जोड़ें (अधिकतम गहराई: 2)", - "maxDepthReachedTooltip": "अधिकतम नेस्टिंग गहराई पहुँच गई" - }, - "compareWithPast": { - "alertSetFor": "अलर्ट सेट किया गया", - "currentWindow": "वर्तमान विंडो", - "cycle": "चक्र", - "cycleTooltip": "परिणामों की तुलना पिछले चक्र के समान समय से करें।", - "runningFor": "हर {frequency} के अंतराल में {period} के लिए चल रहा है", - "currentWindowCannotBeDeleted": "वर्तमान विंडो हटाई नहीं जा सकती", - "comparingWith": "इसके साथ तुलना", - "referenceWindow": "संदर्भ विंडो", - "timeFrame": "समय सीमा", - "timeFrameTooltip": "आपकी क्वेरी के लिए समय सीमा।", - "comparingText": "वर्तमान विंडो क्वेरी परिणाम की तुलना पिछले {offset} के क्वेरी परिणाम से की जा रही है।", - "addComparisonWindow": "तुलना विंडो जोड़ें", - "goToConditions": "शर्तों पर जाएँ", - "goToConditionsTooltip": "चयनित तुलना विंडो के ईवेंट सत्यापित करने के लिए \"Go to Conditions\" पर क्लिक करें", - "comparisonDisabledTooltip": "तुलना विंडो केवल SQL मोड में समर्थित हैं। Alert Rules टैब में SQL पर स्विच करें।" - }, - "alertSettings": { - "sectionTitle": "सेटिंग्स", - "fieldRequired": "फ़ील्ड आवश्यक है!", - "noDestinationsAvailable": "कोई गंतव्य उपलब्ध नहीं", - "refreshDestinations": "नवीनतम गंतव्य रिफ़्रेश करें", - "cronSchedule": "Cron शेड्यूल", - "addNewDestination": "गंतव्य जोड़ें", - "cooldownTooltip": "यदि अलर्ट ट्रिगर होता है तो दूसरी सूचना भेजने से पहले कितनी देर प्रतीक्षा करनी चाहिए। उदा. यदि अलर्ट शाम 4:00 बजे ट्रिगर होता है और साइलेंस सूचना 10 मिनट पर सेट है तो यह शाम 4:10 बजे तक दूसरी सूचना नहीं भेजेगा, भले ही अलर्ट 1 मिनट के बाद भी बना रहे। यह उपयोगकर्ता को सूचनाओं से स्पैम करने से बचाने के लिए है।", - "thresholdTooltip": "परिभाषित करता है कि अलर्ट ईवेंट गणना या एकत्रित मान के आधार पर कब ट्रिगर होना चाहिए। उदाहरण: यदि \"> 100\" पर सेट है, तो गणना 100 ईवेंट से अधिक होने पर अलर्ट ट्रिगर होता है।", - "periodTooltip": "वह अवधि जिसके लिए क्वेरी चलनी चाहिए। उदा. 10 मिनट का अर्थ है कि जब भी क्वेरी चलेगी तो यह डेटा के अंतिम 10 मिनट का उपयोग करेगी।", - "frequencyTooltipMinutes": "कार्य कितनी बार निष्पादित किया जाना चाहिए। उदा. हर 5 मिनट में।", - "frequencyTooltipCron": "स्पेस द्वारा अलग किए गए 5 फ़ील्ड के साथ मानक UNIX cron प्रारूप: [मिनट 0-59] [घंटा 0-23] [माह का दिन 1-31] [माह 1-12 या JAN-DEC] [सप्ताह का दिन 0-7 या '1L-7L', रविवार के लिए 0 और 7]।", - "timezoneWarning": "चेतावनी: प्रदर्शित समयक्षेत्र अनुमानित है। सही समयक्षेत्र को मैन्युअल रूप से सत्यापित और चुनें।", - "destinationsTooltip": "अलर्ट सूचनाएँ भेजने के लिए एक या अधिक गंतव्य चुनें।", - "templateTooltip": "वैकल्पिक: इस अलर्ट के सभी गंतव्यों के लिए उपयोग करने हेतु एक टेम्पलेट चुनें। टेम्पलेट आपको अलर्ट संदेशों के प्रारूप को अनुकूलित करने देते हैं। यदि चयनित नहीं है, तो प्रत्येक गंतव्य अपने स्वयं के कॉन्फ़िगर किए गए टेम्पलेट का उपयोग करेगा।", - "createsIncident": "घटना बनाता है", - "createsIncidentTooltip": "यदि कोई अलर्ट एक घटना बना सकता है, तो यह एक समर्पित सूचना नहीं भेजता। इसके बजाय, जब एक नई घटना बनती है या एक नया अलर्ट प्रकार किसी मौजूदा घटना में शामिल होता है तो घटना के लिए एक सूचना भेजी जाती है।" - }, - "advanced": { - "addVariable": "वेरिएबल जोड़ें", - "variablesTooltip": "वेरिएबल का उपयोग अलर्ट से गंतव्य तक डेटा पास करने के लिए किया जाता है।", - "rowTemplateTooltip": "Row Template का उपयोग अलर्ट संदेश को प्रारूपित करने के लिए किया जाता है।", - "templateType": "टेम्पलेट प्रकार:", - "noTemplatesAvailable": "कोई टेम्पलेट उपलब्ध नहीं", - "refreshTemplates": "नवीनतम टेम्पलेट रिफ़्रेश करें", - "selectTemplate": "टेम्पलेट चुनें" - }, - "editJson": "अलर्ट JSON संपादित करें", - "additional_settings": "अतिरिक्त सेटिंग्स", - "alertNamePlaceholder": "अलर्ट नाम", - "nameRequired": "अलर्ट नाम आवश्यक है।", - "nameNoSpecialChars": "अलर्ट नाम में ':', '#', '?', '&', '%', कोट्स या स्पेस वर्ण नहीं हो सकते। इसके बजाय अंडरस्कोर (_) का उपयोग करें।", - "anomalyNamePlaceholder": "असामान्यता नाम", - "anomalyName": "असामान्यता नाम", - "folder": "फ़ोल्डर", - "selectStreamTypeFirst": "पहले एक स्ट्रीम प्रकार चुनें", - "previewEmptyState": "पूर्वावलोकन देखने के लिए एक स्ट्रीम प्रकार और स्ट्रीम नाम चुनें", - "queryConfig": { - "sectionTitle": "शर्तें", - "openFullEditor": "पूर्ण एडिटर खोलें", - "groupByTooltip": "इन फ़ील्ड के अनुसार परिणाम समूहित करें — प्रति अद्वितीय संयोजन अलर्ट ट्रिगर होता है", - "havingGroups": "समूह वाले", - "havingGroupsTooltip": "अलर्ट ट्रिगर करने के लिए ऊपर दी गई शर्त को संतुष्ट करने वाले समूहों की न्यूनतम संख्या।", - "addGroupByField": "समूह फ़ील्ड जोड़ें", - "noFunctions": "कोई फ़ंक्शन नहीं", - "writeQueryHint": "शुरू करने के लिए एक क्वेरी लिखें", - "sqlEditorHint": "चलाने और सत्यापित करने के लिए पूर्ण एडिटर खोलें" - }, - "anomaly": { - "filters": "फ़िल्टर", - "fieldPlaceholder": "फ़ील्ड", - "noFieldsFound": "कोई फ़ील्ड नहीं मिला", - "selectStreamFirst": "पहले एक स्ट्रीम चुनें", - "addFilter": "फ़िल्टर जोड़ें", - "sqlRequired": "कस्टम SQL मोड में SQL आवश्यक है", - "detectionResolution": "पहचान रिज़ॉल्यूशन", - "detectionResolutionTooltip": "प्रत्येक डेटा बिंदु कितना सूक्ष्म है। उदा. \"5m\" का अर्थ है कि असामान्यताओं का पता 5-मिनट रिज़ॉल्यूशन पर लगाया जाता है।", - "checkEvery": "हर बार जाँचें", - "checkEveryTooltip": "पहचान जॉब कितनी बार चलता है। नमूना अवधि से बड़ा हो सकता है (उदा. हर 5m में नमूना लें, हर 1h में पहचान चलाएँ)।", - "lookBackWindow": "लुक बैक विंडो", - "lookBackWindowTooltip": "प्रत्येक पहचान रन कितना पीछे तक क्वेरी करता है। एक लंबे विराम के बाद भी विंडो को सीमित करता है। डिफ़ॉल्ट रूप से Check Every अंतराल।", - "retrainEvery": "हर बार पुनः प्रशिक्षित करें", - "retrainEveryTooltip": "मॉडल को स्वचालित रूप से कितनी बार पुनः प्रशिक्षित करना है। \"कभी नहीं\" का अर्थ है एक बार प्रशिक्षित करें और मैन्युअल रूप से पुनः प्रशिक्षित होने तक मॉडल रखें।", - "sensitivityTooltip": "संवेदनशीलता नियंत्रित करने के लिए असामान्यता स्कोर सीमा समायोजित करें। इस सीमा के बाहर स्कोर वाले बिंदु अलर्ट ट्रिगर नहीं करेंगे। ऐतिहासिक डेटा देखने और तदनुसार ट्यून करने के लिए चार्ट का उपयोग करें।", - "anomalyScoreRange": "असामान्यता स्कोर सीमा:", - "loadData": "डेटा लोड करें", - "selectStreamFirstTooltip": "पहले एक स्ट्रीम चुनें", - "enterSqlFirst": "पहले एक SQL क्वेरी दर्ज करें", - "clickLoadDataHint": "टाइम सीरीज़ का पूर्वावलोकन करने के लिए Load Data पर क्लिक करें", - "seasonalityWeekly": "घंटा + सप्ताह-का-दिन", - "seasonalityDaily": "दिन-का-घंटा", - "notifications": "सूचनाएँ", - "notificationsTooltip": "सक्षम होने पर, जब भी कोई असामान्यता पाई जाती है तो चयनित गंतव्य पर एक सूचना भेजी जाएगी।", - "enabled": "सक्षम", - "disabled": "अक्षम", - "noDestinationsFound": "कोई गंतव्य नहीं मिला", - "addNewDestination": "नया गंतव्य जोड़ें", - "destinationRequired": "कम से कम एक गंतव्य आवश्यक है!", - "disabledNotificationsInfo": "असामान्यता पहचान फिर भी चलेगी और परिणामों को _anomalies स्ट्रीम में लिखेगी। असामान्यताओं का पता चलने पर अलर्ट प्राप्त करने के लिए सूचनाएँ सक्षम करें।" - } - }, - "alert_templates": { - "header": "टेम्पलेट्स", - "add": "टैम्प्लेट जोड़ें", - "edit": "संपादित करें", - "search": "खोज टेम्पलेट", - "name": "नाम", - "function": "अलर्ट का विवरण", - "save": "सेव करें", - "actions": "क्रियाएँ", - "cancel": "कैंसिल करें", - "addTitle": "टैम्प्लेट जोड़ें", - "updateTitle": "टेम्पलेट अपडेट करें", - "delete": "डिलीट करें", - "variable_guide_header": "टेम्पलेट वैरिएबल गाइड", - "variable_usage_examples": "उपयोग के उदाहरण", - "body": "बॉडी", - "clone": "क्लोन करें", - "cloneTitle": "टेम्पलेट क्लोन करें", - "systemReadOnly": "पूर्व-निर्मित टेम्पलेट — हटाना अक्षम है। एक संशोधन योग्य प्रति बनाने के लिए इसे क्लोन करें।", - "prebuiltBadge": "पूर्व-निर्मित", - "prebuiltBadgeHint": "सिस्टम द्वारा प्रबंधित। आप संपादित कर सकते हैं, लेकिन हटाना अक्षम है।", - "customBadge": "कस्टम", - "filterAll": "सभी", - "filterPrebuilt": "पूर्व-निर्मित", - "filterCustom": "कस्टम" - }, - "alert_destinations": { - "header": "गंतव्य", - "add": "डेस्टिनेशन जोड़ें", - "edit": "संपादित करें", - "search": "खोज गंतव्य", - "name": "नाम", - "template": "टैम्प्लेट", - "save": "सेव करें", - "actions": "क्रियाएँ", - "cancel": "कैंसिल करें", - "addTitle": "डेस्टिनेशन जोड़ें", - "updateTitle": "गंतव्य अपडेट करें", - "delete": "डिलीट करें", - "method": "तरीका", - "url": "यूआरएल", - "api_header": "हैडर", - "api_header_value": "वैल्यू", - "add_template": "नया टेम्पलेट", - "skip_tls_verify": "TLS सत्यापन छोड़ें", - "destination_type": "Destination Type", - "action": "Action", - "output_format": "Output Format", - "readonly": "Read-only", - "additional_settings": "Additional Settings", - "custom_headers": "Custom Headers (Optional)", - "preview": "Preview", - "test": "Test", - "saved": "Destination saved successfully", - "saveError": "Failed to save destination", - "filterAll": "सभी", - "filterPrebuilt": "पूर्व-निर्मित", - "filterCustom": "कस्टम", - "templateDefaultBadge": "डिफ़ॉल्ट", - "customWebhook": "कस्टम (Webhook)", - "customEmail": "कस्टम (ईमेल)", - "customAction": "कस्टम (Action)", - "custom": "कस्टम", - "separator": "विभाजक", - "separator_placeholder": "विभाजक दर्ज करें (उदा., |, \\n, \\t, स्पेस)", - "separator_hint": "रिकॉर्ड के बीच उपयोग करने के लिए विभाजक स्ट्रिंग (स्पेस की अनुमति है)", - "templateDefaultOption": "डिफ़ॉल्ट ({name})", - "templateHelp": "मानक {type} टेम्पलेट ({name}) का उपयोग करने के लिए डिफ़ॉल्ट के रूप में छोड़ें, या एक कस्टम चुनें।" - }, - "metrics": { - "searchMetric": "एक मीट्रिक के लिए खोजें", - "searchLabel": "मेट्रिक लेबल खोजें", - "add": "जोड़ें", - "cancel": "कैंसिल करें", - "promqlLabel": "PromQL", - "runQuery": "रन क्वैरी", - "holdMessage": "तंग, फ़ेचिंग मेट्रिक्स को पकड़ें।", - "noStreamSelected": "कोई मेट्रिक्स नहीं चुना गया।", - "addToDashboard": "डैशबोर्ड में जोड़ें" - }, - "settings": { - "header": "सेटिंग", - "userKeyLabel": "उपयोगकर्ता कुंजी", - "rumKeyLabel": "RUM कुंजी", - "newUserKeyBtnLbl": "उपयोगकर्ता कुंजी जोड़ें", - "addUserKeyTitle": "उपयोगकर्ता कुंजी बनाएं", - "organizationLabel": "संगठन चुनें: ", - "save": "सेव करें", - "cancel": "कैंसिल करें", - "apiNamePlaceHolder": "मुख्य नाम", - "updateuserKey": "उपयोगकर्ता कुंजी अपडेट करें", - "id": "आईडी", - "update": "अपडेट", - "generalLabel": "साधारण", - "apikeyLabel": "API कुंजियाँ", - "generalPageTitle": "सामान्य सेटिंग", - "scrapintervalLabel": "स्क्रेप इंटरवल (सेकंड में) *", - "correlation": { - "serviceIdentityLabel": "सेवा पहचान", - "exampleText": "{dim1} और {dim2} के साथ, पहचान {value} बन जाती है।", - "correlationLabel": "सहसंबंध:", - "addDimensionHint": "प्राथमिकता सूची में जोड़ने के लिए एक सिमेंटिक समूह चुनें।", - "selectSemanticGroup": "सिमेंटिक समूह चुनें", - "noSemanticGroupsAvailable": "कोई सिमेंटिक समूह उपलब्ध नहीं है। पहले नीचे फील्ड मैपिंग कॉन्फ़िगर करें।", - "noSemanticGroupsConfigured": "कोई सिमेंटिक समूह कॉन्फ़िगर नहीं है। उपलब्ध डायमेंशन परिभाषित करने के लिए नीचे फील्ड मैपिंग जोड़ें।", - "configureSemanticGroupsFirst": "पहचान प्राथमिकता के लिए उपलब्ध डायमेंशन परिभाषित करने के लिए नीचे सिमेंटिक फील्ड मैपिंग कॉन्फ़िगर करें।", - "saveSemanticMappings": "सिमेंटिक मैपिंग सहेजें", - "semanticMappingsSaved": "सिमेंटिक फील्ड मैपिंग सफलतापूर्वक सहेजी गई", - "filters": "फ़िल्टर", - "availableDimensions": "उपलब्ध डायमेंशन", - "semanticFieldGroupsTitle": "फील्ड मैपिंग", - "groupsLabel": "समूह", - "noMatchingGroups": "कोई मेल खाता समूह नहीं", - "scopeDimension": "स्कोप डायमेंशन", - "workloadDimension": "वर्कलोड डायमेंशन", - "noFormulaConfigured": "कोई पहचान सूत्र कॉन्फ़िगर नहीं है। ऊपर डायमेंशन जोड़ें।", - "scopeLegend": "स्कोप (जोड़ा गया)", - "workloadLegend": "वर्कलोड (पहला non-null)", - "firstNonNull": "पहला non-null:", - "scopeTag": "स्कोप", - "workloadTag": "वर्कलोड", - "scopeOnly": "केवल स्कोप", - "noMatchingDimensions": "कोई मेल खाता डायमेंशन नहीं", - "otherGroup": "अन्य", - "fallbackGroup": "फॉलबैक", - "fallbackNote": "फॉलबैक डायमेंशन ('service' जैसे) सभी वातावरणों में लागू होते हैं जब कोई वातावरण-विशिष्ट वर्कलोड मेल नहीं खाता।", - "title": "Correlation Settings", - "subtitle": "Discover and manage service correlations across logs, traces, and metrics", - "serviceIdentityTab": "Service Identity", - "discoveredServicesTab": "Discovered Services", - "alertCorrelationTab": "Alert Correlation", - "discoveredServicesTitle": "Discovered Services", - "discoveredServicesDescription": "Services are automatically discovered from your telemetry data and grouped by their Service Name for correlation. Services sharing the same Service Name are correlated together across logs, traces, and metrics.", - "noServicesYet": "No services discovered yet", - "noServicesDescription": "Services will appear here as telemetry data is ingested with service identification attributes (like k8s-deployment, service name, etc.)", - "services": "Services", - "fullyCorrelated": "Fully Correlated", - "suggestions": "suggestions", - "clickToViewSuggestions": "Click to view correlation improvement suggestions", - "byService": "By Service", - "byStream": "By Stream", - "searchServiceName": "Search service or stream name...", - "searchStreamName": "Search stream name...", - "allServices": "All Services", - "missingTelemetry": "Missing Telemetry", - "correlationKey": "Correlation Key", - "telemetryCoverage": "Telemetry Coverage", - "serviceName": "Service Name", - "streams": "Streams", - "viewDimensions": "View dimensions", - "viewServices": "Click to view services", - "dimensionsFor": "Dimensions for", - "correlatedViaSharedDimensions": "service(s) correlated via shared dimensions", - "correlationDimensions": "Correlation Dimensions", - "noSharedDimensions": "No shared dimensions found across services", - "suggestionsDialogTitle": "Correlation Suggestions", - "suggestionsDialogSubtitle": "Services that could be correlated but are missing telemetry types", - "suggestionsInfoText": "To enable full correlation, ensure your telemetry data includes consistent service identification attributes (like k8s-deployment, service name) across logs, traces, and metrics.", - "addTracingSuggestion": "Add OpenTelemetry tracing instrumentation to enable full correlation", - "addLogsSuggestion": "Configure log collection with matching service attributes", - "addMetricsSuggestion": "Add metrics collection with matching service dimensions", - "missing": "Missing", - "deployment": "Deployment", - "statefulSet": "StatefulSet", - "daemonSet": "DaemonSet", - "ecsTask": "ECS Task", - "faas": "FaaS", - "service": "Service", - "serviceIdentityTitle": "Service Identity Configuration", - "serviceIdentityDescription": "Configure how services are identified and correlated across logs, traces, and metrics. Service Identity combines scope dimensions (environment context) with workload dimensions (service name).", - "howItWorksTitle": "How Service Identity Works", - "howItWorksDescription": "Service Identity uniquely identifies services by combining scope (cluster, region) with workload (deployment, service name).", - "exampleLabel": "Example:", - "correlationDescription": "Services with the same identity are correlated, even if they have different {field} names.", - "resetToDefaults": "Reset to defaults", - "noDimensionsConfigured": "No dimensions configured. Click \"Reset to Defaults\" or add dimensions below.", - "addDimensionLabel": "Add dimension to priority list", - "moveUp": "Move up (higher priority)", - "moveDown": "Move down (lower priority)", - "removeFromList": "Remove from priority list", - "semanticFieldTitle": "Semantic Field Mappings", - "semanticFieldTooltip": "Maps different field names to semantic dimensions. For example, \"deployment\", \"k8s.deployment.name\", and \"kube_deployment\" all map to \"k8s-deployment\".", - "semanticFieldDescription": "Configure how field names from your telemetry are mapped to semantic dimensions.", - "saveConfiguration": "Save Configuration", - "configSavedSuccess": "Service identity configuration saved successfully", - "configSaveFailed": "Failed to save settings", - "correlationSettingsSaved": "Correlation settings saved successfully.", - "logs": "Logs", - "traces": "Traces", - "metrics": "Metrics", - "retry": "Retry", - "priorityOrderLabel": "Priority Order", - "serviceDiscoveryTab": "पहचान नियम", - "fieldAliasesTab": "फ़ील्ड मैपिंग", - "fieldAliasesSaved": "फ़ील्ड उपनाम सफलतापूर्वक सहेजे गए", - "serviceNameFieldAliasNote": "इस समूह से मैप किए गए वास्तविक फ़ील्ड नाम यहाँ कॉन्फ़िगर किए गए हैं", - "viewFieldAliases": "फ़ील्ड उपनाम संपादित करें →", - "fieldAliasesSaveError": "फ़ील्ड उपनाम सहेजने में विफल", - "fieldAliasesUnsavedConfirm": "आपके पास असहेजे गए फ़ील्ड मैपिंग परिवर्तन हैं। उन्हें रद्द करें और छोड़ें?", - "duplicateIdsError": "डुप्लिकेट समूह ID मिले: {ids}। कृपया सुनिश्चित करें कि प्रत्येक समूह की एक अद्वितीय ID हो।", - "duplicateNamesInCategoryError": "श्रेणी \"{category}\" में डुप्लिकेट नाम \"{name}\" मिला। किसी श्रेणी के भीतर प्रत्येक समूह का एक अद्वितीय नाम होना चाहिए।", - "emptyIdError": " श्रेणी में रिक्त समूह नाम हैं। कृपया सुनिश्चित करें कि सभी समूहों के मान्य नाम हों।", - "emptyFieldsError": "कम से कम एक फ़ील्ड नाम आवश्यक है", - "lastSeen": "अंतिम बार देखा गया", - "serviceIdentitySetupTitle": "सेवा पहचान सेटअप", - "serviceIdentitySetupDescription": "कॉन्फ़िगर करें कि आपके टेलीमेट्री डेटा में सेवाओं की पहचान कैसे की जाती है", - "serviceNameFieldLabel": "सेवा नाम फ़ील्ड", - "serviceNameFieldHelp": "आपके टेलीमेट्री डेटा में कौन-सा फ़ील्ड सेवा नाम की पहचान करता है", - "serviceNameFrom": "सेवा नाम स्रोत", - "serviceNameDerivedPrefix": "सेवा नाम यहाँ परिभाषित सेवा नाम फ़ील्ड का उपयोग करके प्राप्त किया जाता है", - "serviceNameFields": "फ़ील्ड उपनाम", - "serviceNameDetectedFrom": "सेवा नाम यहाँ से पहचाना गया:", - "serviceNameNotDetected": "आपके डेटा में अभी तक कोई सेवा नाम फ़ील्ड नहीं पहचाना गया", - "serviceNameNotDetectedHelp": "सुनिश्चित करें कि आपकी टेलीमेट्री में service.name या समान जैसा फ़ील्ड शामिल हो", - "serviceNameExpandedHelp": "आपके डेटा में ये फ़ील्ड नाम सभी सेवा नाम से मैप होते हैं:", - "serviceNameConfiguredNotSeen": "कॉन्फ़िगर किया गया लेकिन अभी तक आपके डेटा में नहीं देखा गया", - "customizeFieldMappings": "फ़ील्ड मैपिंग अनुकूलित करें", - "fieldMappingDialogHelp": "ऐसे फ़ील्ड नाम जोड़ें या हटाएँ जिन्हें आपके टेलीमेट्री डेटा में सेवा नाम के रूप में पहचाना जाना चाहिए।", - "fieldMappingPlaceholder": "एक फ़ील्ड नाम टाइप करें और Enter दबाएँ", - "foundInLogs": "Logs में मिला", - "foundInTraces": "Traces में मिला", - "foundInMetrics": "Metrics में मिला", - "distinguishByLabel": "सेवाओं को इसके द्वारा अलग करें", - "distinguishByHelp": "ऐसे फ़ील्ड चुनें जो परिभाषित करते हैं कि आपकी सेवाएँ कहाँ चलती हैं। उदाहरण के लिए, cluster + namespace + deployment मिलकर प्रत्येक सेवा के लिए एक अद्वितीय पहचान बनाते हैं। 5 तक फ़ील्ड।", - "serviceOptionalLabel": "सेवा एट्रिब्यूट के बिना सहसंबंधित करें", - "serviceOptionalHelp": "केवल नीचे दिए गए एट्रिब्यूट का उपयोग करके स्ट्रीम मिलान करें, सेवा एट्रिब्यूट अनदेखा करें", - "noFieldsConfiguredYet": "अभी तक कोई असंदिग्धीकरण फ़ील्ड कॉन्फ़िगर नहीं किया गया।", - "addField": "फ़ील्ड जोड़ें", - "addFieldTooltip": "सेवाओं को विशिष्ट रूप से पहचानने में मदद के लिए एक और फ़ील्ड जोड़ें (अधिकतम 5)। उदाहरण: region, namespace, या environment।", - "addGroup": "समूह जोड़ें", - "addGroupTooltip": "किसी भिन्न एनवायरनमेंट के लिए असंदिग्धीकरण फ़ील्ड का एक अलग सेट बनाएँ (उदा. Kubernetes बनाम AWS के लिए भिन्न फ़ील्ड)", - "autoSuggestedBanner": "इन फ़ील्ड को स्वत: सुझाया गया क्योंकि इनमें कम अद्वितीय मान (निम्न कार्डिनैलिटी) हैं और ये आपकी अधिकांश सेवाओं में दिखाई देते हैं — समान नाम वाली सेवाओं को अलग करने के लिए आदर्श। आप सहेजने से पहले उन्हें अनुकूलित कर सकते हैं।", - "addDisambiguationField": "एक और जोड़ें", - "removeDisambiguationField": "फ़ील्ड हटाएँ", - "nameFieldLockedNote": "पहली कॉन्फ़िगरेशन के बाद सेवा नाम फ़ील्ड बदला नहीं जा सकता", - "noGroupsAvailable": "कोई फ़ील्ड समूह उपलब्ध नहीं", - "selectField": "एक फ़ील्ड चुनें", - "detectedLabel": "हमने आपके डेटा के आधार पर {type} वर्कलोड का पता लगाया।", - "suggestionPrompt": "क्या हमें सुझाव लागू करना चाहिए?", - "applySuggestion": "सुझाव लागू करें", - "logStreams": "Log स्ट्रीम", - "traceStreams": "Trace स्ट्रीम", - "metricStreams": "Metric स्ट्रीम", - "saveIdentityConfig": "कॉन्फ़िगरेशन सहेजें", - "identityConfigSaved": "सेवा पहचान कॉन्फ़िगरेशन सफलतापूर्वक सहेजा गया", - "identityConfigSaveFailed": "सेवा पहचान कॉन्फ़िगरेशन सहेजने में विफल", - "loadRecommendationsFailed": "सिफ़ारिशें लोड करने में विफल", - "resetServices": "सेवाएँ रीसेट करें", - "resetServicesTooltip": "सभी खोजी गई सेवाएँ हटाएँ। नया डेटा आने पर वे स्वचालित रूप से फिर से खोजी जाएँगी।", - "resetServicesConfirmTitle": "सभी खोजी गई सेवाएँ रीसेट करें?", - "resetServicesConfirmMessage": "यह इस संगठन की सभी खोजी गई सेवाओं को हटा देगा। नया टेलीमेट्री डेटा इन्जेस्ट होने पर सेवाएँ स्वचालित रूप से फिर से खोजी जाएँगी। यह क्रिया पूर्ववत नहीं की जा सकती।", - "resetServicesConfirmWarning": "नया टेलीमेट्री डेटा इन्जेस्ट होने पर सेवाएँ स्वचालित रूप से फिर से खोजी जाएँगी। यह क्रिया पूर्ववत नहीं की जा सकती।", - "resetServicesSuccess": "{count} खोजी गई सेवाएँ सफलतापूर्वक हटाई गईं।", - "resetServicesFailed": "सेवाएँ रीसेट करने में विफल", - "workload": "वर्कलोड", - "goToConfiguration": "कॉन्फ़िगरेशन पर जाएँ", - "configureServicesHint": "यह कॉन्फ़िगर करने के लिए कि सेवाओं की पहचान और समूहन कैसे किया जाता है।", - "filterBy": "इसके अनुसार फ़िल्टर करें :", - "selectFieldPlaceholder": "फ़ील्ड चुनें", - "selectValuePlaceholder": "मान चुनें", - "selectFieldFirst": "पहले एक फ़ील्ड चुनें", - "instanceSingular": "इंस्टेंस", - "instancePlural": "इंस्टेंस", - "serviceSingular": "सेवा", - "serviceCountSingular": "{count} सेवा", - "serviceCountPlural": "{count} सेवाएँ", - "instancesCount": "({count} इंस्टेंस)", - "noDimensions": "कोई आयाम नहीं", - "defaultSetWarningTitle": "सहसंबंध अविश्वसनीय हो सकता है।", - "defaultSetWarningBody": "इस इंस्टेंस में कोई असंदिग्धीकरण नहीं है — इसे बिना किसी वर्कलोड मिलान के खोजा गया (कोई cluster, namespace, या environment संदर्भ नहीं)। लॉग और ट्रेस एक ही सेवा नाम के विभिन्न डिप्लॉयमेंट से आ सकते हैं।", - "instanceIdentity": "इंस्टेंस पहचान", - "noDimensionsCatchAll": "कोई आयाम नहीं — कैच-ऑल इंस्टेंस", - "streamSources": "स्ट्रीम स्रोत", - "openInLogsTooltip": "सेवा फ़िल्टर के साथ Logs में खोलें", - "fieldNameMapping": "फ़ील्ड नाम मैपिंग", - "logsWithCount": "Logs ({count})", - "tracesWithCount": "Traces ({count})", - "metricsWithCount": "Metrics ({count})" - }, - "alertCorrelation": "Alert Deduplication", - "correlationSettings": "Correlation Settings", - "queryManagement": "Query Management", - "enableWebsocketSearch": "Enable Websocket Search", - "enterpriseTitle": "Enterprise Settings", - "logoLabel": "Drag & Drop Logo Image", - "customLogoTitle": "Custom Logo", - "deleteLogoTitle": "Delete Logo", - "deleteLogoMessage": "Are you sure you want to delete this logo image? Click OK to delete.", - "deleteLogo": "Delete Logo", - "logo": "Logo", - "customLogoText": "Custom Logo Text", - "orgLabel": "Organization Parameters", - "logDetails": "Log Details", - "traceIdFieldName": "Trace ID Field Name", - "spanIdFieldName": "Span ID Field Name", - "toggleIngestionLogsLabel": "Toggle Ingestion Logs", - "claimParserFunction": "SSO Claim Parser", - "claimParserFunctionDescription": "Select a function (VRL or JavaScript) to parse and transform SSO/LDAP claims into organization and role assignments", - "claimParserFunctionLabel": "Select Function", - "claimParserFunctionHint": "Choose a function from _meta org to parse SSO/LDAP claims (VRL or JavaScript)", - "claimParserFunctionSaved": "Claim parser function saved successfully", - "errorSavingClaimParserFunction": "Error saving claim parser function", - "noVrlFunctionsFound": "No functions found in _meta org", - "claimParserFunctionInfoTitle": "Function Input and Output Format", - "claimParserFunctionInputTitle": "Input Format:", - "claimParserFunctionInputDescription": "The function receives a JSON object containing claims mapped in Dex from your SSO/LDAP provider (e.g., email, name, groups, roles).", - "claimParserFunctionOutputTitle": "Output Format:", - "claimParserFunctionOutputDescription": "The function must return one of these formats:", - "claimParserFunctionOutputExample1": "• Success: Return an array of objects, each with 'org' (string, the organization identifier - not the name - must be pre-existing) and 'role' (string) fields", - "claimParserFunctionOutputExample2": "• Deny: Return an object with 'deny' (boolean true) and 'reason' (string) fields", - "claimParserRecentErrors": "Recent Errors (Last 24 Hours)", - "noRecentErrors": "No errors found in the last 24 hours", - "cipherKeys": "Cipher Keys", - "nodes": "Nodes", - "enableStreamingSearch": "Enable Streaming Search", - "enableStreamingAggregation": "Enable Streaming Aggregation", - "organizationManagement": "Organization Management", - "extendTrial": "Extend Trial", - "searchOrgs": "Search Orgs", - "paginationOrganizationLabel": "Organization", - "org_name": "Org Name", - "org_identifier": "Org Identifier", - "subscription_status": "Subscription Status", - "created_on": "Created on", - "trial_expiry": "Trial Expiry", - "actions": "Actions", - "ssoDomainRestrictions": "SSO Management", - "ssoDomainRestrictionsDescription": "Manage SSO claim parsing functions and control which domains and specific users are allowed to login using SSO providers", - "domainRestrictionsSubsection": "Domain Restrictions", - "domainRestrictionsSubsectionDescription": "Control which domains and specific users are allowed to login using SSO providers", - "domainAndAllowedUsers": "Domain and allowed users", - "domainPlaceholder": "e.g. example.com", - "domainHint": "Enter domain names without the {at_sign} symbol", - "addDomain": "Add Domain", - "domainConfiguredCount": "{count} domain(s) configured", - "allowAllUsersFromDomain": "Allow all users from {domain}", - "allowOnlySpecificUsers": "Allow only specific users from {domain}", - "blockSpecificUsers": "Block only specific users from {domain}", - "blockAllUsersFromDomain": "Block all users from {domain}", - "allUsersBlockedMessage": "All external SSO users with email addresses ending in {domain} will be blocked from the system (UI, API and ingestion).", - "blockedUsersHint": "Blocked entries apply to external SSO identities only (SSO users and SSO/token service accounts). They override any allow rule and cover UI, API and ingestion. Native and API-created accounts are not affected — delete those instead.", - "addBlockedEmail": "Block Email", - "blockedEmailPlaceholder": "e.g. user{domain}", - "domainNeedsBlockedEmails": "Domain '{domain}' must have at least one email address when blocking specific users", - "confirmRemoveBlockedEmail": "Are you sure you want to unblock the email '{email}'?", - "blockedEmailAdded": "Email address blocked successfully", - "blockedEmailRemoved": "Email address unblocked successfully", - "allUsersAllowedMessage": "All users with email addresses ending in {domain} will be allowed to login.", - "emailPlaceholder": "e.g. user{domain}", - "addEmail": "Add Email", - "saveChanges": "Save", - "invalidDomain": "Please enter a valid domain name", - "invalidEmail": "Please enter a valid email address for this domain", - "domainRequired": "Domain is required", - "emailRequired": "Email is required", - "domainAlreadyExists": "This domain has already been added", - "domainAdded": "Domain added successfully", - "confirmRemoveDomain": "Are you sure you want to remove the domain '{domain}'?", - "domainRemoved": "Domain removed successfully", - "emailAlreadyExists": "This email address has already been added", - "emailAdded": "Email address added successfully", - "confirmRemoveEmail": "Are you sure you want to remove the email '{email}'?", - "emailRemoved": "Email address removed successfully", - "domainNeedsEmails": "Domain '{domain}' must have at least one email address when not allowing all users", - "domainSettingsSaved": "Domain settings saved successfully", - "errorSavingDomainSettings": "Error saving domain settings", - "noDomainMessage": "No domains configured. Add domains above to restrict access.", - "license": "License", - "pageSubtitle": "Adjust settings for your Application", - "platformSettings": "Platform Settings", - "scrapeIntervalRequired": "Scrape interval is required", - "scrapeIntervalPositive": "Scrape interval must be a positive number", - "scrapeIntervalDescription": "The scrape interval is the frequency, in seconds, at which the monitoring system collects metrics.", - "maxSeriesPerQueryLabel": "Max Series Per Query", - "maxSeriesPerQueryDescription": "Maximum number of series that can be returned from a single PromQL query. Helps prevent UI freezing with large result sets. Leave empty to use system default (40,000).", - "maxSeriesPerQueryTooltip": "When a PromQL query like 'count(metric) by (label)' returns too many series, it can freeze the UI. This limit prevents that. Set to null for system default, or specify a value between 1,000 and 1,000,000.", - "maxSeriesPerQueryValidation": "Value must be between 1,000 and 1,000,000, or leave empty for default", - "systemDefault": "system default", - "manageTheme": "Manage Theme", - "light": "Light", - "dark": "Dark", - "resetToDefaultColors": "Reset to default colors", - "themeManagementDescription": "Manage your organization's theme colors for both light and dark modes. These colors will be applied at the organization level.", - "enterpriseFeatures": "Enterprise Features", - "noTextAvailable": "No Text Available", - "customLogoTextDescription": "Custom logo text is used to change the default branding text displayed in the application.", - "lightMode": "Light Mode", - "dragDropUpload": "Drag & drop or click to upload", - "customLogoLightDescription": "Custom logo for light mode theme. This will be displayed when users are in light mode.", - "darkMode": "Dark Mode", - "customLogoDarkDescription": "Custom logo for dark mode theme. This will be displayed when users are in dark mode.", - "pickCustomColor": "Pick Custom Color", - "close": "Close", - "organizationSettingsUpdated": "Organization settings updated", - "somethingWentWrong": "Something went wrong", - "logoUpdatedSuccessfully": "{mode} logo updated successfully.", - "errorUploadingImage": "Error while uploading image.", - "notAllowedAction": "You are not allowed to perform this action.", - "selectFileToUpload": "Please select a file to upload.", - "logoDeletedSuccessfully": "{mode} logo deleted successfully.", - "errorDeletingImage": "Error while deleting image.", - "themeColorsResetSuccess": "Theme colors reset to defaults and applied.", - "textMaxCharacters": "Text should be less than 100 characters.", - "logoTextUpdatedSuccessfully": "Logo text updated successfully.", - "errorUpdatingImage": "Error while updating image.", - "fileFormatConstraint": "(Only .png, .jpg, .jpeg, .gif, .bmp formats & Max Size: 150x30px)", - "filesValidationFailed": "{count} file(s) did not pass validation constraints", - "groupGeneral": "सामान्य", - "groupAccessSecurity": "पहुँच और सुरक्षा", - "groupDestinationsTemplates": "गंतव्य और टेम्पलेट", - "groupDataAI": "डेटा और AI", - "groupOperations": "संचालन", - "groupAccount": "खाता", - "generalDesc": "थीम, क्वेरी डिफ़ॉल्ट, और मुख्य प्राथमिकताएँ", - "orgDesc": "संगठन पैरामीटर और पहचानकर्ता", - "cipherKeysDesc": "संवेदनशील फ़ील्ड के लिए एन्क्रिप्शन कुंजियाँ", - "regexPatternsDesc": "रिडैक्शन के लिए पुन: उपयोग योग्य regex पैटर्न", - "domainManagementDesc": "अनुमत SSO डोमेन तक साइन-इन प्रतिबंधित करें", - "alertDestinationsDesc": "ट्रिगर किए गए अलर्ट कहाँ वितरित किए जाते हैं", - "pipelineDestinationsDesc": "पाइपलाइन आउटपुट के लिए बाहरी लक्ष्य", - "templatesDesc": "पुन: उपयोग योग्य अलर्ट संदेश टेम्पलेट", - "storageSettingsDesc": "प्रति-संगठन स्टोरेज कॉन्फ़िगरेशन", - "modelPricingDesc": "LLM मॉडल लागत कॉन्फ़िगरेशन", - "correlationSettingsDesc": "टेलीमेट्री सहसंबंध कॉन्फ़िगरेशन", - "llmProvidersDesc": "ऑनलाइन मूल्यांकनों के लिए LLM प्रदाता", - "queryManagementDesc": "चालू क्वेरियों का निरीक्षण और रद्द करें", - "nodesDesc": "क्लस्टर नोड और उनका स्वास्थ्य", - "licenseDesc": "एंटरप्राइज़ लाइसेंस विवरण", - "organizationManagementDesc": "संगठन बनाएँ और प्रबंधित करें", - "ingestionTokens": "इन्जेशन टोकन", - "usageStreamEnabledLabel": "उपयोग स्ट्रीम सक्षम करें", - "llmModelPricing": "LLM मॉडल मूल्य निर्धारण", - "aiToolsets": "AI टूलसेट", - "dangerZone": "खतरे का क्षेत्र", - "deleteOrganization": "संगठन हटाएं", - "deleteOrganizationTitle": "इस संगठन को हटाएं", - "deleteOrganizationDescription": "{name} को हटाने के लिए निर्धारित करता है। यह तुरंत सभी के लिए — आपके लिए भी — अनुपलब्ध हो जाता है, और छूट अवधि समाप्त होने पर स्थायी रूप से मिटा दिया जाता है। उससे पहले पुनर्स्थापित करने के लिए सहायता टीम से संपर्क करना आवश्यक है।", - "deleteOrganizationScopeLoading": "जाँच की जा रही है कि इस संगठन में क्या है…", - "deleteOrganizationScope": "{dashboards} डैशबोर्ड · {streams} स्ट्रीम · {size} डेटा", - "deleteFactGracePeriod": "छूट अवधि", - "deleteFactGracePeriodDetail": "मिटाए जाने तक सहायता टीम इसे पुनर्स्थापित कर सकती है", - "deleteFactEverything": "सब कुछ हटा देता है", - "deleteFactEverythingDetail": "सभी डैशबोर्ड, स्ट्रीम और अंतर्ग्रहित डेटा", - "deleteFactMembers": "{n} सदस्य पर प्रभाव | {n} सदस्यों पर प्रभाव", - "deleteFactMembersDetail": "सभी पहुँच तुरंत रद्द कर दी जाती है", - "deleteFactOwner": "केवल व्यवस्थापक", - "deleteFactOwnerDetail": "इस संगठन में व्यवस्थापक भूमिका आवश्यक है", - "deleteOrganizationConfirm": "इससे \"{name}\" — और इसके सभी स्ट्रीम, डैशबोर्ड, अलर्ट, पाइपलाइन, उपयोगकर्ता और सेटिंग्स — हटाने के लिए निर्धारित हो जाएंगे।", - "deleteOrganizationWarning": "संगठन तुरंत अनुपलब्ध हो जाता है और उपयोग करने वाले सभी लोगों से छिपा दिया जाता है। अंतर्ग्रहण अवरुद्ध हो जाता है और निर्धारित अलर्ट, पाइपलाइन और रिपोर्ट चलना बंद हो जाते हैं, इसलिए हटाने के लिए निर्धारित रहने के दौरान कोई सूचना नहीं भेजी जाती।", - "deleteOrganizationRecoverable": "छूट अवधि के दौरान यह पुनर्प्राप्ति योग्य स्थिति में रहता है, लेकिन आप इसे स्वयं पुनर्स्थापित नहीं कर पाएंगे — हटाना शुरू होते ही आप इस संगठन तक पहुँच खो देते हैं, और केवल OpenObserve सहायता टीम ही इसे वापस ला सकती है। छूट अवधि के बाद इसका डेटा स्थायी रूप से हटा दिया जाता है और कोई भी इसे पुनर्प्राप्त नहीं कर सकता।", - "deleteOrganizationTypeToConfirm": "पुष्टि करने के लिए, नीचे {name} टाइप करें:", - "deleteOrganizationInitiated": "संगठन हटाने के लिए निर्धारित। यह अब छिपा हुआ है; छूट अवधि समाप्त होने से पहले इसे पुनर्स्थापित करने के लिए सहायता टीम से संपर्क करें।" - }, - "invitation": { - "pendingInvitations": "Pending Invitations", - "organizationName": "Organization Name", - "role": "Role", - "invitedBy": "Invited By", - "expiry": "Expiry", - "actions": "Actions", - "accept": "Accept", - "reject": "Reject", - "cancel": "Cancel", - "confirmAcceptHead": "Accept Invitation", - "confirmAcceptMsg": "Are you sure you want to join {org}?", - "confirmRejectHead": "Reject Invitation", - "confirmRejectMsg": "Are you sure you want to reject the invitation to join {org}?", - "expired": "Expired", - "expiresToday": "Expires Today", - "daysLeft": "{days} days left", - "search": "आमंत्रण खोजें" - }, - "serviceAccounts": { - "header": "सेवा खाते", - "emailInvalid": "कृपया एक मान्य ईमेल पता दर्ज करें", - "headerSubtitle": "API के लिए प्रोग्रामेटिक एक्सेस टोकन", - "search": "सेवा खाता खोजें", - "refresh": "सेवा टोकन रिफ़्रेश करें", - "rotate": "टोकन रोटेट करें", - "showToken": "सेवा टोकन दिखाएँ", - "hideToken": "सेवा टोकन छिपाएँ", - "delete": "हटाएँ", - "deleteServiceAccount": "सेवा खाता हटाएँ", - "update": "सेवा खाता अपडेट करें", - "copyToken": "टोकन कॉपी करें", - "add": "नया सेवा खाता", - "confirmDeleteMsg": "क्या आप वाकई {identifier} को हटाना चाहते हैं?", - "confirmDeleteHead": "सेवा खाता हटाएँ", - "confirmDeleteBtn": "खाता हटाएँ", - "confirmRefreshMsg": "क्या आप वाकई {identifier} के लिए टोकन रोटेट करना चाहते हैं?", - "confirmRefreshHead": "सेवा टोकन रोटेट करें", - "confirmRefreshBtn": "टोकन रोटेट करें", - "confirmBulkDeleteHead": "सेवा खाते हटाएँ", - "confirmBulkDeleteMsg": "क्या आप वाकई {count} सेवा खाता(खातों) को हटाना चाहते हैं?", - "confirmBulkDeleteBtn": "{count} खाते हटाएँ", - "downloadToken": "टोकन डाउनलोड करें", - "token": "टोकन", - "tokenDialogTitle": "सेवा खाता टोकन", - "tokenReveal": { - "curl": "cURL", - "header": "हेडर", - "env": "एनवायरनमेंट वेरिएबल", - "nextStep": "अपने API अनुरोधों में इस टोकन का उपयोग करें। इसे सुरक्षित रूप से संग्रहीत करें; यह दोबारा नहीं दिखाया जाएगा।", - "nextStepCloud": "अपने API अनुरोधों में इस टोकन का उपयोग करें। API एंडपॉइंट के लिए अपने व्यवस्थापक से संपर्क करें।", - "nextStepGrant": "इस सेवा खाते के पास अभी तक कोई अनुमति नहीं है। एक्सेस देने के लिए इसे कोई भूमिका असाइन करें, या इसे किसी उपयोगकर्ता समूह में जोड़ें।", - "nextStepOss": "भूमिकाएँ और समूह पृष्ठ से एक्सेस प्रदान करें।", - "addToGroup": "उपयोगकर्ता समूह में जोड़ें", - "addToRole": "एक भूमिका असाइन करें", - "step1Title": "अपना टोकन कॉपी करें", - "step2Title": "अनुमतियाँ प्रदान करें", - "copyHint": "इस टोकन को अभी कॉपी करें — आप इसे दोबारा नहीं देख पाएँगे।", - "next": "अगला: अनुमतियाँ प्रदान करें", - "back": "वापस", - "done": "पूर्ण" - }, - "form": { - "identifier": { - "label": "पहचानकर्ता", - "placeholder": "ईमेल पता दर्ज करें", - "help": "सेवा खाता पहचानकर्ता के रूप में उपयोग किया जाने वाला ईमेल पता" - } - }, - "list": { - "col": { - "identifier": "पहचानकर्ता", - "description": "विवरण", - "token": "टोकन", - "created": "बनाया गया" - } - }, - "empty": { - "title": "अभी तक कोई सेवा खाता नहीं", - "description": "प्रोग्रामेटिक एक्सेस के लिए API टोकन जनरेट करने हेतु एक सेवा खाता बनाएँ।", - "cta": "सेवा खाता जोड़ें" - }, - "row": { - "managedBy": "सिस्टम द्वारा प्रबंधित", - "managedByTooltip": "यह एक सिस्टम-प्रबंधित सेवा खाता है और इसे संशोधित नहीं किया जा सकता", - "checkboxTooltip": "सिस्टम-प्रबंधित खाते बल्क ऑपरेशन से बाहर रखे गए हैं" - }, - "bulkDelete": "हटाएँ", - "bulkDeleteNotice": "सिस्टम-प्रबंधित खाते बल्क ऑपरेशन से बाहर रखे गए हैं" - }, - "iam": { - "users": "Users", - "groups": "User Groups", - "roles": "Roles", - "organizations": "Organizations", - "addGroup": "New user group", - "addRole": "New role", - "roleName": "Role Name", - "groupName": "Group Name", - "permissionName": "Permission Name", - "permission": "Permission", - "all": "All", - "list": "List", - "get": "Get", - "create": "Create", - "update": "Update", - "delete": "Delete", - "entityName": "Entity Name", - "userName": "User Name", - "resourceName": "Resource Name", - "searchRole": "Search Role", - "searchGroup": "Search User Group", - "object": "Object", - "serviceAccounts": "Service Accounts", - "serviceAccountsName": "Service Accounts Name", - "basicUsers": "Users", - "organizationMembers": "संगठन के सदस्य", - "invitations": "Invitations", - "quota": "Quotas", - "externalUserWarningTitle": "External user warning", - "externalUserWarningMessage": "Adding external users directly to roles won't grant permissions. Add them to User Groups instead.", - "sectionAccess": "पहुँच", - "sectionPermissions": "अनुमतियाँ", - "sectionOrganization": "संगठन", - "usersDesc": "इस संगठन तक पहुँच वाले लोग", - "serviceAccountsDesc": "API के लिए प्रोग्रामेटिक पहुँच टोकन", - "ingestionTokensDesc": "इस संगठन में डेटा इन्जेस्ट करने के लिए टोकन", - "invitationsDesc": "लंबित और भेजे गए सदस्य आमंत्रण", - "groupsDesc": "भूमिकाएँ असाइन करने के लिए उपयोगकर्ताओं को एक साथ समूहित करें", - "rolesDesc": "अनुमतियाँ और पहुँच नीतियाँ परिभाषित करें", - "quotaDesc": "प्रति भूमिका लागू उपयोग सीमाएँ", - "organizationsDesc": "वे संगठन जिन तक आप पहुँच सकते हैं", - "nameHelpText": "केवल अल्फ़ान्यूमेरिक और '_' वर्णों का उपयोग करें, बिना स्पेस के।", - "ingestionTokens": "इन्जेशन टोकन", - "editGroup": { - "unsavedDot": { - "title": "इस टैब में सहेजे न गए परिवर्तन हैं।" - }, - "leaveConfirm": { - "title": "सहेजे न गए परिवर्तन छोड़ें?", - "message": "आपके पास सहेजे न गए भूमिका या सदस्य परिवर्तन हैं। इस पृष्ठ को छोड़ने पर वे रद्द हो जाएँगे।" - } - }, - "editRole": { - "unsavedDot": { - "title": "इस टैब में सहेजे न गए परिवर्तन हैं।" - }, - "leaveConfirm": { - "title": "सहेजे न गए परिवर्तन छोड़ें?", - "message": "आपके पास सहेजे न गए अनुमति या सदस्य परिवर्तन हैं। इस पृष्ठ को छोड़ने पर वे रद्द हो जाएँगे।" - } - }, - "groupsPage": { - "subtitle": "उपयोगकर्ता समूह भूमिकाओं को एक साथ बाँधते हैं — किसी समूह में सदस्य जोड़ें ताकि उन्हें एक ही बार में उसकी सभी भूमिकाएँ मिल जाएँ।", - "delete": { - "impact": "{count} सदस्य इस समूह द्वारा प्रदान की गई भूमिकाएँ खो देंगे।" - }, - "bulkDelete": { - "impact": "इन समूहों के सदस्य इनके द्वारा प्रदान की गई भूमिकाएँ खो देंगे।" - } - }, - "rolesPage": { - "subtitle": "भूमिकाएँ अनुमतियों को एक साथ बाँधती हैं — एक्सेस देने के लिए इन्हें उपयोगकर्ताओं, सेवा खातों या समूहों को असाइन करें।", - "delete": { - "impact": "{count} उपयोगकर्ता और इस भूमिका से बंधे कोई भी सेवा खाते एक्सेस खो देंगे।" - }, - "bulkDelete": { - "impact": "इन भूमिकाओं से बंधे कोई भी उपयोगकर्ता और सेवा खाते एक्सेस खो देंगे।" - } - }, - "group": { - "name": { - "required": "समूह का नाम आवश्यक है।", - "invalidChars": "केवल अक्षर, संख्याएँ और अंडरस्कोर का उपयोग करें, बिना रिक्त स्थान के।" - } - }, - "role": { - "name": { - "required": "भूमिका का नाम आवश्यक है।", - "invalidChars": "केवल अक्षर, संख्याएँ और अंडरस्कोर का उपयोग करें, बिना रिक्त स्थान के।" - }, - "startFrom": { - "label": "यहाँ से आरंभ करें", - "custom": "कस्टम (खाली भूमिका)", - "readonly": "केवल-पढ़ने योग्य (सभी संसाधनों तक देखने की पहुँच)" - } - } - }, - "pipeline": { - "header": "Pipelines", - "create": "Create Pipeline", - "SelectParentNode": "Select Parent Node", - "SelectChildNode": "Select Child Node", - "deleteNode": "Delete", - "addPipeline": "New pipeline", - "deletePipeline": "Delete Pipeline", - "search": "Search Pipeline", - "routing": "Routing", - "nodes": "Nodes", - "associateFunction": "Associate Function", - "derivedStream": "Derived Stream", - "pipelineName": "Enter Pipeline Name", - "flatteningLbl": "After Flattening", - "streamTitle": "Associate Stream", - "conditionTitle": "Associate Condition", - "query": "Associate Query", - "unsavedMessage": "You have unsaved changes. Are you sure you want to leave?", - "import": "Import", - "export": "Export", - "edit": "Edit", - "delete": "Delete", - "view": "View", - "delay": "Delay", - "history": "Pipeline History", - "searchHistory": "Enter Pipeline Name", - "destination_type": "Destination Type", - "backfill": "Backfill", - "buildQuery": "Build Query", - "setVariables": "Set Variables", - "trigger": "Trigger", - "aggregation": "Aggregation", - "selectColumn": "Select column", - "value": "Value", - "fieldRequired": "Field is required!", - "sqlQuery": "Sql Query", - "promqlQuery": "PromQL Query", - "output": "Output", - "validating": "Validating...", - "validateAndClose": "Validate and Close", - "editPipelineJson": "Edit Pipeline Json", - "editPipelineJSON": "Edit Pipeline JSON", - "savePipeline": "Save Pipeline", - "savePipelineConfirm": "Are you sure you want to save this Pipeline, as it does not have any impact?", - "sourceNode": "Source", - "streamNode": "Stream", - "queryNode": "Query", - "transformNode": "Transform", - "functionNode": "Function", - "conditionNode": "Condition", - "destinationNode": "Destination", - "remoteNode": "Remote", - "sourceStreamTooltip": "Source: Stream Node", - "sourceQueryTooltip": "Source: Query Node", - "functionTooltip": "Function Node", - "conditionTooltip": "Condition Node", - "destinationStreamTooltip": "Destination: Stream Node", - "destinationExternalTooltip": "Destination: External Destination Node", - "pipelineNotFound": "Pipeline not found", - "pipelineNameRequired": "Pipeline name is required", - "sourceNodeRequired": "Source node is required", - "destinationNodeRequired": "Destination node is required", - "connectAllNodes": "Please connect all nodes before saving", - "connectAllNodesShort": "Please connect all nodes", - "enrichmentTablesScheduledOnly": "Enrichment tables as destination stream is only available for scheduled pipelines", - "savingPipeline": "Saving pipeline...", - "pipelineUpdated": "Pipeline Updated successfully", - "pipelineSaved": "Pipeline saved successfully", - "errorSavingPipeline": "Error while saving pipeline", - "cancelChangesConfirm": "Are you sure you want to cancel changes?", - "cancel": "Cancel", - "dragDropNodesHere": "Drag and drop nodes here", - "subtitle": "डेटा को गतिशील रूप से रूपांतरित, संवर्धित और रूट करें", - "llmEvaluation": "LLM मूल्यांकन", - "nodeName": "नोड नाम", - "llmJudgeConfig": "LLM जज कॉन्फ़िगरेशन", - "enableLlmJudge": "LLM-as-Judge सक्षम करें", - "enableLlmJudgeHelp": "सक्षम होने पर, विस्तृत आयाम स्कोर के साथ प्रतिक्रिया गुणवत्ता का मूल्यांकन करने के लिए एक LLM का उपयोग करता है। अधिक संपूर्ण लेकिन LLM टोकन की लागत लगती है।", - "samplingConfig": "सैंपलिंग कॉन्फ़िगरेशन", - "enableSampling": "सैंपलिंग सक्षम करें", - "samplingRate": "सैंपलिंग दर", - "samplingRateHelp": "मूल्यांकन लागत कम करने के लिए ट्रेस का एक प्रतिशत सैंपल करें। सुसंगत, नियतात्मक परिणामों के लिए trace_id पर हैश-आधारित सैंपलिंग का उपयोग करता है।", - "llmEvaluationInfo": "LLM मूल्यांकन कॉन्फ़िगरेशन", - "llmEvaluationInfoText": "LLM जज का उपयोग करके ट्रेस का मूल्यांकन करता है और परिणामों को एक अलग logs स्ट्रीम में लिखता है। मूल्यांकन से पहले ट्रेस फ़िल्टर करने के लिए अपस्ट्रीम VRL फ़ंक्शन या शर्तों का उपयोग करें।", - "llmSpanIdentifier": "LLM स्पैन पहचानकर्ता", - "llmSpanIdentifierLabel": "LLM स्पैन की पहचान करने के लिए फ़ील्ड", - "llmSpanIdentifierHelp": "स्रोत स्ट्रीम से वह फ़ील्ड चुनें जो LLM स्पैन की पहचान करता है। केवल वे स्पैन मूल्यांकित होंगे जहाँ यह फ़ील्ड मौजूद और गैर-रिक्त है।", - "noFieldsFound": "कोई फ़ील्ड नहीं मिला", - "llmEvaluationNodeSaved": "LLM मूल्यांकन नोड सफलतापूर्वक सहेजा गया", - "llmEvaluationNodeTitle": "LLM मूल्यांकन नोड", - "samplingLabel": "सैंपलिंग", - "samplingAllTraces": "सभी ट्रेस (100%)", - "samplingOfTraces": "ट्रेस का", - "nameLabel": "नाम", - "llmEvaluationDescription": "ट्रेस का मूल्यांकन करता है और परिणामों को एक अलग logs स्ट्रीम में लिखता है", - "llmEvaluationEnableToggle": "इस traces स्ट्रीम के लिए LLM मूल्यांकन सक्षम करें", - "llmEvaluationEnableHelp": "एक रीयलटाइम पाइपलाइन बनाता है जो LLM ट्रेस का मूल्यांकन करती है और परिणामों को एक अलग logs स्ट्रीम में लिखती है।", - "llmSpanIdentifierFieldHelp": "वह फ़ील्ड जो LLM स्पैन की पहचान करता है (उदा. gen_ai_system)", - "llmEvaluationSamplingRateLabel": "सैंपलिंग दर: {percentage}%", - "llmEvaluationSamplingHelp": "मूल्यांकन के लिए ट्रेस का प्रतिशत", - "llmEvaluationOutputStreamName": "आउटपुट स्ट्रीम नाम", - "llmEvaluationOutputStreamHelp": "मूल्यांकन परिणाम इस logs स्ट्रीम में लिखे जाएँगे", - "llmEvaluationRemoveWarning": "किसी मौजूदा LLM मूल्यांकन पाइपलाइन को हटाने के लिए, इसे Pipelines पृष्ठ से प्रबंधित करें।", - "llmEvaluationPipelineExists": "इस traces स्ट्रीम के लिए \"{streamName}\" नामक एक पाइपलाइन पहले से मौजूद है। इसे Pipelines पृष्ठ से प्रबंधित करें।", - "llmEvaluationPipelineDescription": "traces स्ट्रीम {streamName} के लिए LLM मूल्यांकन पाइपलाइन", - "llmEvaluationCreatedSuccess": "LLM मूल्यांकन पाइपलाइन \"{streamName}\" सफलतापूर्वक बनाई गई।", - "llmEvaluationCreationFailed": "LLM मूल्यांकन पाइपलाइन बनाने में विफल।", - "evaluationTemplate": "मूल्यांकन टेम्पलेट", - "evaluationTemplateHelp": "एक मूल्यांकन टेम्पलेट चुनें जो LLM जज के लिए मानदंड और आयाम परिभाषित करता है।", - "noTemplatesFound": "कोई मूल्यांकन टेम्पलेट नहीं मिला। Evaluation Templates पृष्ठ में एक बनाएँ।", - "evalTemplatesRefreshed": "मूल्यांकन टेम्पलेट सफलतापूर्वक रिफ़्रेश किए गए", - "discardChangesTitle": "परिवर्तन रद्द करें", - "deleteNodeTitle": "नोड हटाएँ", - "deleteNodeLlmEvalConfirm": "क्या आप वाकई इस LLM मूल्यांकन नोड को हटाना चाहते हैं?", - "promqlOnlyForMetrics": "PromQL केवल metrics स्ट्रीम प्रकार के लिए उपलब्ध है", - "invalidCronExpression": "अमान्य cron एक्सप्रेशन", - "cronRequired": "क्रॉन एक्सप्रेशन आवश्यक है", - "destResourceNameInvalid": ":, ?, /, # जैसे वर्ण और स्पेस की अनुमति नहीं है।", - "urlTrailingSlash": "URL अंत में स्लैश के साथ समाप्त नहीं होना चाहिए", - "orgRequiredOpenobserve": "OpenObserve के लिए संगठन आवश्यक है", - "streamRequiredOpenobserve": "OpenObserve के लिए स्ट्रीम नाम आवश्यक है", - "endpointMustStartSlash": "एंडपॉइंट पथ / से शुरू होना चाहिए", - "indexRequiredEsbulk": "ESBulk फ़ॉर्मेट के लिए इंडेक्स नाम आवश्यक है", - "separatorRequiredStringseparated": "StringSeparated फ़ॉर्मेट के लिए विभाजक आवश्यक है", - "ddSourceRequiredDatadog": "Datadog के लिए DD Source आवश्यक है", - "ddTagsRequiredDatadog": "Datadog के लिए DD Tags आवश्यक हैं", - "periodGreaterThanZero": "अवधि 0 से अधिक होनी चाहिए", - "frequencyGreaterThanSeconds": "आवृत्ति {seconds} सेकंड से अधिक होनी चाहिए।", - "minimumFrequencyMinutes": "न्यूनतम आवृत्ति {minutes} मिनट होनी चाहिए", - "streamSelectionNameInvalid": "केवल अल्फ़ान्यूमेरिक और '+=,.@-_' वर्णों का उपयोग करें, स्पेस के बिना।", - "functionAlreadyAssociated": "फ़ंक्शन पहले से संबद्ध है", - "atLeastOneCondition": "कृपया कम से कम एक शर्त जोड़ें", - "fillAllConditionFields": "कृपया सभी शर्त फ़ील्ड भरें (कॉलम, ऑपरेटर और मान आवश्यक हैं)", - "selectExternalDestination": "कृपया सूची से बाहरी गंतव्य चुनें", - "backfillNumericRange": "{min} और {max} के बीच होना चाहिए", - "selectValidTimeRange": "कृपया एक मान्य समय सीमा चुनें", - "startBeforeEndTime": "प्रारंभ समय समाप्ति समय से पहले होना चाहिए", - "thresholdShouldNotBeEmpty": "थ्रेशोल्ड रिक्त नहीं होना चाहिए", - "errorGettingResults": "परिणाम प्राप्त करते समय त्रुटि", - "save": "सहेजें", - "evalTemplates": "मूल्यांकन टेम्पलेट", - "selectStream": "एक स्ट्रीम चुनें ...", - "queryEditorPlaceholder": "एक स्ट्रीम चुनें या यहाँ SQL क्वेरी लिखें..." - }, - "latencyInsights": { - "title": "Insights", - "tabLabel": "Latency", - "analyzeButton": "Latency Analysis", - "analyzeTooltip": "Analyze latency patterns across trace dimensions", - "compareToLabel": "Compare to:", - "fullTimeRange": "Full time range", - "beforePeriod": "Before selected period", - "afterPeriod": "After selected period", - "durationLabel": "Duration:", - "analyzingDimensions": "Analyzing dimensions...", - "computingDistributions": "Computing frequency distributions across {count} dimensions", - "failedToLoad": "Failed to load analysis", - "retryButton": "Retry", - "percentileLabel": "Latency Percentile", - "p50Median": "P50 (Median)", - "p75": "P75", - "p95": "P95", - "p99": "P99", - "dimensionsButton": "Fields ({count})", - "dimensionsTooltip": "Add or remove dimensions to analyze", - "selectDimensions": "Select Fields", - "analyzeButtonLabel": "Analyze", - "refreshTooltip": "Refresh analysis with updated percentile", - "customSQLFieldsDisabled": "Field selection is not available for custom SQL queries. Dimensions are extracted from your query results.", - "timeRangeSelected": "Time Range Selected", - "dimensionsSelected": "आयाम चयनित" - }, - "volumeInsights": { - "title": "Insights", - "tabLabel": "Rate", - "analyzeButton": "Rate Analysis", - "analyzeTooltip": "Analyze trace rate patterns across dimensions", - "analyzeTooltipLogs": "Analyze dimension distribution for current time range", - "rateLabel": "Rate:", - "timeRangeLabel": "Time Range:", - "analyzeTooltipTraces": "दर, विलंबता, और त्रुटि पैटर्न के लिए ट्रेस आयामों का विश्लेषण करें", - "insightsButtonLabel": "अंतर्दृष्टि", - "searchInspectionsLabel": "खोज जॉब निष्पादन विवरण का निरीक्षण करें", - "inspectBtnLabel": "निरीक्षण करें", - "analyzeBtnLabel": "अंतर्दृष्टि" - }, - "errorInsights": { - "title": "Insights", - "tabLabel": "Errors", - "errorSpikePeriod": "Error Spike Period:", - "errorsGreaterThan": "Errors >=" - }, - "pipeline_destinations": { - "header": "Pipeline Destinations", - "search": "Search destination" - }, - "reports": { - "header": "Reports", - "add": "New report", - "search": "Search report", - "update": "Update Report", - "dashboardFolder": "Folder", - "dashboard": "Dashboard", - "dashboardTab": "Dashboard Tab", - "recipients": "Recipients", - "name": "Report name", - "replyTo": "Reply-to email address", - "title": "Title", - "description": "Description", - "cron": "Cron Job", - "cronExpression": "Cron expression", - "timeRange": "Time Range", - "frequency": "Frequency", - "lastTriggeredAt": "Last Triggered At", - "createdAt": "Created At", - "tab": "Tab", - "cached": "Cached", - "cachedReport": "Cached Report", - "destination": "Destination", - "scheduled": "Scheduled", - "subtitle": "निर्धारित रिपोर्ट और एक्सपोर्ट", - "searchThisFolder": "यह फ़ोल्डर", - "searchAllFolders": "सभी फ़ोल्डर", - "reloadReports": "रिपोर्ट पुनः लोड करें", - "moveToFolder": "फ़ोल्डर में ले जाएँ", - "deleteReportsTitle": "रिपोर्ट हटाएँ", - "deleteReportsMsg": "क्या आप वाकई {count} रिपोर्ट हटाना चाहते हैं?", - "reportFormat": "रिपोर्ट प्रारूप", - "reportType": "रिपोर्ट प्रकार", - "attachmentType": "अटैचमेंट शैली", - "dimensionWidth": "चौड़ाई (px)", - "dimensionHeight": "ऊँचाई (px)", - "imagePreview": "इनलाइन डैशबोर्ड पूर्वावलोकन छवि शामिल करें", - "customDimensions": "कस्टम आयाम (उन्नत)", - "validation": { - "resourceNameInvalid": ":, ?, /, # जैसे वर्ण और रिक्त स्थान की अनुमति नहीं है।", - "invalidCron": "अमान्य Cron expression!", - "cronSixFields": "Cron expression में ठीक 6 फ़ील्ड होने चाहिए: [सेकंड] [मिनट] [घंटा] [माह का दिन] [माह] [सप्ताह का दिन]", - "cronMinInterval": "आवृत्ति {seconds} सेकंड से अधिक होनी चाहिए।", - "dateFormat": "दिनांक प्रारूप गलत है!", - "timeFormat": "समय प्रारूप गलत है!", - "invalidEmails": "मान्य ईमेल जोड़ें!" - } - }, - "queries": { - "runningQueries": "Running Queries", - "search": "Search", - "sessionId": "Session ID", - "initiatedAt": "Initiated At", - "query": "Query", - "queryList": "Query Details", - "duration": "Exec. Duration", - "status": "Status", - "cancelQuery": "Cancel Query", - "queryRange": "Query Range", - "refreshQuery": "Refresh", - "queryType": "Query Type", - "numOfQueries": "Number of Queries", - "totalDuration": "Total Exec. Duration", - "totalTimeRange": "Total Query Range", - "searchType": "Search Type", - "querySource": "Query Source" - }, - "traces": { - "viewLogs": "View Logs", - "viewRelated": "View Related", - "backToLogs": "Back to Logs", - "RedMetrics": "RED Metrics", - "loadingStream": "Loading Stream...", - "noTracesFound": "Result not found.", - "configureFullTextSearch": "to configure a full text search field to the stream.", - "collapseFields": "Collapse Fields", - "openFields": "Open Fields", - "timeRangeUpdated": "The selected time range did not include this trace. The time range has been updated to match the trace's timestamp.", - "fetchingMoreTraces": "Fetching more traces...", - "openInFullView": "पूर्ण दृश्य में खोलें", - "openInTraces": "Traces में खोलें", - "showErrorOnly": "केवल त्रुटि दिखाएँ", - "noLogsAvailableForService": "इस सेवा के लिए कोई लॉग उपलब्ध नहीं", - "noData": { - "title": "OpenObserve पर ट्रेस भेजना शुरू करें", - "description": "इस संगठन में अभी तक कोई trace स्ट्रीम नहीं मिली। अपनी सेवाओं को इंस्ट्रूमेंट करें और ट्रेस यहाँ स्वचालित रूप से दिखाई देंगे।", - "otlp": "OTLP के माध्यम से ट्रेस भेजें", - "otlpDesc": "Jaeger, Zipkin और कोई भी OpenTelemetry-संगत SDK", - "otelCollector": "OTel Collector / Agent", - "otelCollectorDesc": "सभी टेलीमेट्री सिग्नल को OTel Collector के माध्यम से रूट करें", - "or": "या:", - "kubernetes": "Kubernetes", - "python": "Python", - "java": "Java", - "nodejs": "Node.js", - "askAi": "ट्रेसिंग सेट करने के लिए AI से पूछें" - }, - "errorRetrievingTraces": "ट्रेस प्राप्त करते समय त्रुटि हुई।", - "fetchingTraces": "ट्रेस लोड हो रहे हैं...", - "noTracesFoundAdjust": "कोई ट्रेस नहीं मिला। कृपया फ़िल्टर समायोजित करें और पुनः प्रयास करें।", - "noStream": { - "title": "एक्सप्लोर करना शुरू करने के लिए एक स्ट्रीम चुनें", - "description": "एक trace स्ट्रीम चुनें, फिर Run query दबाएँ। परिणाम लोड होने के बाद आप सेवा, अवधि, स्पैन स्थिति और अधिक के अनुसार फ़िल्टर कर सकते हैं।", - "selectStream": "एक स्ट्रीम चुनें", - "selectStreamDesc": "इस संगठन में उपलब्ध trace स्ट्रीम ब्राउज़ करें", - "queryGuide": "ट्रेस मार्गदर्शिका पढ़ें", - "queryGuideDesc": "सेवा ग्राफ़, स्पैन फ़िल्टरिंग, RED मेट्रिक्स और अधिक", - "recent": "हाल का:" - }, - "noEvents": { - "title": "कोई ट्रेस नहीं मिला", - "descNoFilters": "{range} में कोई ट्रेस नहीं मिला। परिणाम लोड करने के लिए समय सीमा बढ़ाने का प्रयास करें।", - "descWithFilters": "चयनित विंडो में इस क्वेरी से कुछ भी मेल नहीं खाया। समय सीमा बढ़ाने या एक फ़िल्टर हटाने का प्रयास करें।", - "descOutOfRange": "आपकी समय विंडो में इस स्ट्रीम का कोई डेटा नहीं है। डेटा आखिरी बार कब देखा गया था, वहाँ जाएँ।", - "descDataAtBoundary": "स्ट्रीम में इस विंडो में डेटा है लेकिन कोई ट्रेस मेल नहीं खाया। समय सीमा बढ़ाने का प्रयास करें।", - "jumpToData": "नवीनतम डेटा पर जाएँ", - "expandRange": "समय सीमा विस्तृत करें", - "expandRangeDescAbsolute": "एक व्यापक सापेक्ष समय सीमा पर स्विच करें", - "removeFilter": "एक फ़िल्टर हटाएँ", - "selectedRange": "चयनित सीमा" - }, - "tracesTitle": "ट्रेस", - "tracesFound": "ट्रेस मिले", - "spansTitle": "स्पैन", - "spansFound": "स्पैन मिले", - "spansTruncatedWarning": "{total} में से {count} स्पैन दिखाए जा रहे हैं, ट्रेस अधूरा हो सकता है। स्पैन सीमा बढ़ाने के लिए अपने व्यवस्थापक से संपर्क करें।", - "errorTraces": "त्रुटि ट्रेस", - "errorSpans": "त्रुटि स्पैन", - "showAll": "सभी दिखाएँ", - "filterByErrors": "त्रुटियों के अनुसार फ़िल्टर करें", - "clearErrorFilter": "त्रुटि फ़िल्टर साफ़ करें", - "error": "त्रुटि", - "errors": "त्रुटियाँ", - "success": "सफलता", - "today": "आज", - "yesterday": "कल", - "applyPendingFilters": "लंबित फ़िल्टर लागू करें और ट्रेस खोजें", - "backToTraces": "ट्रेस पर वापस", - "loadingTrace": "लोड हो रहा है...", - "traceId": "Trace ID", - "copyTraceId": "Trace ID कॉपी करें", - "viewFilters": "फ़िल्टर देखें", - "reviewAndApplyFilters": "ट्रेस पर फ़िल्टर की समीक्षा करें और लागू करें", - "spansLabel": "स्पैन", - "errorsLabel": "त्रुटियाँ", - "previousMatch": "पिछला मिलान", - "nextMatch": "अगला मिलान", - "searchInSpans": "स्पैन में खोजें", - "spansTableView": "स्पैन तालिका दृश्य", - "serviceMap": "सेवा मानचित्र", - "patternView": "पैटर्न दृश्य", - "spanView": "स्पैन दृश्य", - "comingSoon": "जल्द आ रहा है...", - "fetchingTrace": "आपका ट्रेस प्राप्त किया जा रहा है।", - "traceFilters": "ट्रेस फ़िल्टर", - "showTraces": "ट्रेस दिखाएँ", - "applyAndSearch": "लागू करें और खोजें", - "addToTable": "तालिका में जोड़ें", - "timestamp": "टाइमस्टैम्प", - "noErrorPresent": "इस स्पैन के लिए कोई त्रुटि मौजूद नहीं", - "httpStatusCode": "HTTP स्थिति कोड", - "grpcStatusCode": "gRPC स्थिति कोड", - "dbResponseStatusCode": "DB प्रतिक्रिया स्थिति कोड", - "processExitCode": "प्रक्रिया निकास कोड", - "exceptionsWithCount": "अपवाद ({count})", - "typeLabel": "प्रकार:", - "messageLabel": "संदेश:", - "escapedLabel": "एस्केप्ड:", - "stacktraceLabel": "स्टैकट्रेस:", - "copyStacktrace": "स्टैकट्रेस कॉपी करें", - "noStacktraceAvailable": "कोई स्टैकट्रेस उपलब्ध नहीं", - "stacktraceCopied": "स्टैकट्रेस क्लिपबोर्ड पर कॉपी किया गया", - "stacktraceCopyFailed": "स्टैकट्रेस कॉपी करने में विफल", - "evaluations": { - "loading": "मूल्यांकन डेटा लोड हो रहा है...", - "noDataTitle": "कोई मूल्यांकन डेटा नहीं", - "noDataSubtitle": "इस ट्रेस का अभी तक मूल्यांकन नहीं किया गया है। गुणवत्ता स्कोर और विश्लेषण देखने के लिए इस स्ट्रीम के लिए LLM मूल्यांकन कॉन्फ़िगर करें।", - "templateLabel": "मूल्यांकन टेम्पलेट:", - "qualityScore": "गुणवत्ता स्कोर", - "verdict": "निर्णय", - "traceSteps": "ट्रेस चरण", - "toolCalls": "टूल कॉल", - "doneVia": "इसके माध्यम से किया गया", - "issuesAnalysis": "समस्याएँ और विश्लेषण", - "criteriaFromTemplate": "मूल्यांकन मानदंड (टेम्पलेट से)", - "criteriaDifferentTemplate": "मूल्यांकन मानदंड (भिन्न टेम्पलेट — केवल संदर्भ के लिए)", - "criteriaTemplateMismatchNote": "ये मानदंड {template} से संबंधित हैं, न कि उस टेम्पलेट से जिसने यह मूल्यांकन चलाया ({evaluated})।", - "criteriaSyntaxNote": "{query}, {response}, {model} जैसे प्लेसहोल्डर मूल्यांकन समय पर प्रतिस्थापित किए जाते हैं और यहाँ उनके कच्चे टेम्पलेट रूप में दिखाए जाते हैं।", - "recommendedFixes": "अनुशंसित सुधार", - "fixSuggestion": "सुझाव:", - "weakestDimension": "सबसे कमज़ोर आयाम:", - "dimensionReasoning": "आयाम तर्क", - "noDimensionReasoning": "कोई प्रति-आयाम तर्क उपलब्ध नहीं।", - "queryResponse": "क्वेरी और प्रतिक्रिया", - "systemPrompt": "सिस्टम प्रॉम्प्ट", - "userMessages": "उपयोगकर्ता संदेश", - "assistantResponse": "सहायक प्रतिक्रिया", - "dimensions": "आयाम", - "passThreshold": "पास ≥ 50%", - "passThresholdTooltip": "टेम्पलेट पहलुओं को PASS के रूप में चिह्नित किया जाता है जब उनका स्कोर ≥ 50% होता है। यह एक सामान्य थ्रेशोल्ड है — जज द्वारा उपयोग किए गए सटीक मानदंड के लिए अपने टेम्पलेट के मूल्यांकन प्रॉम्प्ट से परामर्श करें।", - "templateAspectsFrom": "हाइलाइट किए गए पहलू {template} से हैं", - "templateMismatchWarning": "{selected} के पहलू देखे जा रहे हैं। इस ट्रेस का मूल्यांकन {evaluated} के साथ किया गया था। हाइलाइट वास्तविक मूल्यांकन मानदंड को प्रतिबिंबित नहीं कर सकते।", - "templateBadge": "टेम्पलेट", - "technicalDetails": "तकनीकी विवरण", - "judge": "जज", - "time": "समय", - "confidence": "विश्वास", - "status": "स्थिति", - "type": "प्रकार", - "multiStepAgent": "बहु-चरण एजेंट" - }, - "sessionsList": { - "streamLabel": "स्ट्रीम", - "noStreamsTooltip": "कोई LLM स्ट्रीम उपलब्ध नहीं।", - "session": "सत्र", - "sessions": "सत्र", - "countPill": "{total} {unit} में से {count}", - "noStreamsFound": "कोई LLM स्ट्रीम नहीं मिली", - "noStreamsDescription1": "सत्र स्पैन को इसके अनुसार समूहित करते हैं", - "noStreamsDescription2": "LLM स्ट्रीम के रूप में चिह्नित traces स्ट्रीम में। या तो ऐसी कोई स्ट्रीम मौजूद नहीं है, या अभी तक कोई स्पैन इन्जेस्ट नहीं किया गया है।", - "failedToLoad": "सत्र लोड करने में विफल", - "retry": "पुनः प्रयास करें", - "noSessionsFound": "कोई सत्र नहीं मिला", - "noSessionsDescription": "{stream} पर इस समय सीमा में कोई LLM सत्र दर्ज नहीं किया गया। समय सीमा बढ़ाने या किसी भिन्न स्ट्रीम पर स्विच करने का प्रयास करें।", - "loading": "सत्र लोड हो रहे हैं…", - "tokenTooltip": "इनपुट: {input} · आउटपुट: {output} · कुल: {total}", - "durationNs": "ns", - "unknownUser": "अज्ञात उपयोगकर्ता", - "columns": { - "timestamp": "टाइमस्टैम्प", - "sessionId": "Session ID", - "user": "उपयोगकर्ता", - "firstMessage": "पहला संदेश", - "turns": "टर्न", - "duration": "अवधि", - "tokens": "टोकन", - "cost": "लागत", - "status": "स्थिति" - } - }, - "sessionDetail": { - "backToSessions": "सत्र पर वापस", - "pageTitle": "सत्र विवरण", - "failedToLoad": "सत्र लोड करने में विफल", - "retry": "पुनः प्रयास करें", - "sessionNotFound": "सत्र नहीं मिला", - "noSpansFound": "वर्तमान समय सीमा में {id} के लिए कोई स्पैन नहीं मिला।", - "searchPlaceholder": "इस सत्र में ट्रेस खोजें…", - "turn": "टर्न", - "turns": "टर्न", - "turnsShown": "{total} {unit} में से {filtered} दिखाए गए", - "userBadge": "उपयोगकर्ता", - "sessionPrefix": "सत्र", - "copySessionId": "सत्र आईडी कॉपी करें", - "openInTraceExplorer": "ट्रेस एक्सप्लोरर में खोलें", - "unknownUser": "अज्ञात उपयोगकर्ता", - "kpi": { - "turns": "टर्न", - "duration": "अवधि", - "inputTokens": "इनपुट टोकन", - "outputTokens": "आउटपुट टोकन", - "cost": "लागत" - }, - "conversation": "वार्तालाप", - "turnLabel": "टर्न", - "openTrace": "ट्रेस खोलें", - "noUserMessage": "इस टर्न के लिए कोई उपयोगकर्ता संदेश कैप्चर नहीं किया गया।", - "noAssistantMessage": "इस टर्न के लिए कोई सहायक प्रतिक्रिया कैप्चर नहीं की गई।", - "roles": { - "user": "उपयोगकर्ता", - "assistant": "सहायक" - }, - "stats": { - "status": "स्थिति", - "model": "मॉडल", - "tokens": "टोकन", - "input": "इनपुट", - "output": "आउटपुट", - "total": "कुल", - "cost": "लागत", - "spans": "स्पैन", - "llmCalls": "LLM कॉल", - "toolCalls": "टूल कॉल", - "otherCalls": "अन्य", - "otherCallsTooltip": "अपरिचित ऑपरेशन नामों वाले gen_ai स्पैन:" - }, - "fullscreen": { - "expandTurn": "टर्न को पूर्ण स्क्रीन में देखें", - "close": "बंद करें" - } - }, - "servicesCatalog": { - "tabLabel": "सेवा कैटलॉग", - "title": "सेवा कैटलॉग", - "filterPlaceholder": "सेवा नाम के अनुसार फ़िल्टर करें...", - "noServicesFound": "चयनित समय सीमा में कोई सेवा नहीं मिली।", - "loading": "सेवाएँ लोड हो रही हैं...", - "columns": { - "serviceName": "सेवा", - "status": "स्थिति", - "requests": "अनुरोध", - "errorRate": "त्रुटि दर", - "errors": "त्रुटियाँ", - "p50Latency": "P50", - "p95Latency": "P95", - "p99Latency": "P99", - "avgDuration": "औसत अवधि", - "maxDuration": "अधिकतम अवधि", - "operations": "ऑपरेशन" - }, - "status": { - "healthy": "स्वस्थ", - "degraded": "निम्नीकृत", - "warning": "चेतावनी", - "critical": "गंभीर" - }, - "serviceLabel": "सेवा", - "servicesLabel": "सेवाएँ", - "viewTraces": "ट्रेस देखें", - "exportCsv": "CSV एक्सपोर्ट करें", - "legend": { - "title": "त्रुटि दर" - } - }, - "spansTab": "स्पैन", - "tracesTab": "ट्रेस", - "serviceGraphTab": "सेवा ग्राफ़", - "treeView": "ट्री दृश्य", - "graphView": "ग्राफ़ दृश्य", - "layoutHorizontal": "क्षैतिज", - "layoutVertical": "लंबवत", - "layoutForce": "फ़ोर्स लेआउट", - "exportTraces": "ट्रेस एक्सपोर्ट करें", - "waterfall": "वॉटरफ़ॉल", - "flameGraph": "फ्लेम ग्राफ़", - "traceGraph": "ट्रेस ग्राफ़", - "dag": "DAG", - "thread": "थ्रेड" - }, - "actions": { - "testAction": "Test action", - "save": "Save", - "name": "Action Name", - "header": "Actions", - "add": "New action", - "deleteTitle": "Delete", - "deleteText": "Are you sure you want to delete file ?", - "uploadCodeZip": "Upload Code ZIP File", - "update": "Update action", - "type": "Execution Type", - "serviceAccount": "Service Account", - "search": "Search Action", - "timezone": "Timezone", - "zipFileRequired": "ZIP File is required!", - "fieldRequired": "Field is required!", - "nameInvalidChars": "Characters like :, ?, /, #, and spaces are not allowed.", - "invalidMethodName": "Invalid method name. Must start with a letter or underscore. Use only letters, numbers, and underscores.", - "zipFile": "ZIP File", - "frequency": "Frequency" - }, - "cipherKey": { - "header": "Cipher Keys", - "add": "New cipher key", - "search": "Search Cipher Key", - "update": "Update Cipher Key", - "name": "Name", - "type": "Type", - "step1": "Key Store Details", - "step2": "Encryption Mechanism", - "secret": "Secret", - "baseURL": "Base URL", - "accessId": "Access ID", - "authenticationType": "Authentication", - "accessKey": "Access Key", - "ldapUsername": "LDAP Username", - "ldapPassword": "LDAP Password", - "secretType": "Secret Type", - "staticSecretName": "Name", - "dfcName": "DFC Name", - "dfcIV": "DFC IV", - "dfcEncryptedData": "DFC Encrypted Data", - "providerType": "Type", - "algorithm": "Algorithm", - "storeType": "Store Type", - "mechanismType": "Mechanism Type", - "actions": "Actions", - "providerTypeRequired": "प्रदाता प्रकार आवश्यक है", - "algorithmRequired": "एल्गोरिदम आवश्यक है", - "secretRequired": "Secret आवश्यक है", - "nameRequired": "नाम आवश्यक है", - "nameMaxLength": "नाम 50 अक्षरों या उससे कम का होना चाहिए।", - "nameInvalidChars": "केवल अल्फ़ान्यूमेरिक अक्षर, अंडरस्कोर और हाइफ़न की अनुमति है", - "nameInvalidResource": ":, ?, /, # और स्पेस जैसे अक्षरों की अनुमति नहीं है।", - "typeRequired": "प्रकार आवश्यक है", - "baseURLRequired": "Base URL आवश्यक है", - "baseURLInvalid": "कृपया सही URL प्रदान करें।", - "baseURLHtmlNotAllowed": "HTML टैग की अनुमति नहीं है", - "accessIdRequired": "Access ID आवश्यक है", - "accessIdInvalid": "Access ID अल्फ़ान्यूमेरिक होनी चाहिए", - "authenticationTypeRequired": "Authentication प्रकार आवश्यक है", - "secretTypeRequired": "Secret प्रकार आवश्यक है", - "accessKeyRequired": "Access Key आवश्यक है", - "ldapUsernameRequired": "LDAP Username आवश्यक है", - "ldapUsernameInvalid": "उपयोगकर्ता नाम में केवल अल्फ़ान्यूमेरिक अक्षर, डॉट, अंडरस्कोर और हाइफ़न हो सकते हैं", - "ldapPasswordRequired": "LDAP Password आवश्यक है", - "staticSecretNameRequired": "Static Secret Name आवश्यक है", - "dfcNameRequired": "DFC Name आवश्यक है", - "dfcEncryptedDataRequired": "DFC Encrypted Data आवश्यक है" - }, - "quota": { - "header": "Quotas", - "api-limits": "API Limits", - "role-limits": "Role Limits", - "api-search": "Search Module", - "role-search": "Search Role", - "moduleName": "Module Name", - "roleName": "Roles", - "listLimit": "List (Req/s)", - "getLimit": "Get (Req/s)", - "createLimit": "Create (Req/s)", - "updateLimit": "Update (Req/s)", - "deleteLimit": "Delete (Req/s)", - "table": "Table", - "json": "JSON" - }, - "nodes": { - "header": "All Nodes", - "search": "Search Node", - "name": "Node Name", - "version": "Version", - "cpu": "CPU %", - "memory": "Memory %", - "tcp": "TCP Connections", - "filter_header": "Filters", - "clear_all": "Clear All", - "region": "Region", - "cluster": "Cluster", - "nodetype": "Node Type", - "status": "Status", - "cpuusage": "CPU Usage(%)", - "memoryusage": "Memory Usage(%)", - "tcpusage": "TCP", - "establishedLabel": "Established", - "closewaitLabel": "Close Wait", - "waittimeLabel": "Time Wait", - "applyFilter": "Apply Filters", - "searchCluster": "Search Cluster", - "searchRegion": "Search Region" - }, - "regex_patterns": { - "title": "Sensitive Data Redaction", - "header": "Regex Patterns", - "create_pattern": "New pattern", - "search": "Search Pattern", - "no_data": "No Patterns in the Library", - "name": "Name", - "pattern": "Pattern", - "created_at": "Created At", - "updated_at": "Updated At", - "actions": "Actions", - "edit": "Edit", - "delete": "Delete", - "create_regex_pattern": "New pattern", - "create_close": "Create and Close", - "cancel": "Cancel", - "edit_regex_pattern": "Edit Pattern", - "update_close": "Update and Close", - "description": "Description", - "create_regex_pattern_field": "Redact / Drop using Regex", - "import": "Import", - "import_title": "Import Pattern", - "bottom_header": "Pattern(s)", - "filter_by_tag": "Filter by Tag", - "refresh": "Refresh", - "loading_patterns": "Loading patterns...", - "try_again": "Try Again", - "showing_patterns": "Showing {count} pattern(s)", - "preview": "Preview", - "no_patterns_found": "No patterns found", - "no_description": "No description available", - "tags": "Tags", - "rarity": "Rarity", - "valid_examples": "Valid Examples", - "close": "Close", - "import_this_pattern": "Import This Pattern", - "patterns_loaded": "Loaded {count} pattern(s)", - "failed_to_load": "Failed to load patterns", - "no_patterns_selected": "Please select at least one pattern", - "name_required": "* नाम आवश्यक है", - "pattern_required": "* पैटर्न आवश्यक है", - "associated_breadcrumb": "स्ट्रीम विवरण", - "associated_search_placeholder": "खोजें", - "applied_patterns_count": "लागू पैटर्न ({count})", - "all_patterns_count": "सभी पैटर्न ({count})", - "no_data_available": "कोई डेटा उपलब्ध नहीं", - "no_patterns_applied_title": "अभी तक कोई पैटर्न लागू नहीं किया गया", - "no_patterns_applied_subtitle": "अपने फ़ील्ड पर रेगुलर एक्सप्रेशन लागू करना शुरू करने के लिए पैटर्न लाइब्रेरी ब्राउज़ करें।", - "pattern_name": "पैटर्न नाम", - "when_value_matches": "जब मान मेल खाता है", - "redact": "रिडैक्ट करें", - "redact_hint": "[REDACTED] से बदलें", - "drop": "ड्रॉप करें", - "drop_hint": "फ़ील्ड को पूरी तरह से ड्रॉप करें", - "hash": "हैश", - "hash_hint": "खोजने योग्य हैश से बदलें", - "detect_at": "इस पर पहचानें", - "ingestion": "इन्जेशन", - "query": "क्वेरी", - "test_pattern": "पैटर्न परीक्षण करें", - "test_input": "इनपुट परीक्षण करें", - "regex_pattern_label": "Regex पैटर्न", - "input_string": "इनपुट स्ट्रिंग", - "input_string_placeholder": "उदा. 1234567890", - "output": "आउटपुट", - "output_string_placeholder": "आउटपुट स्ट्रिंग", - "click_test_input_hint": "परिणाम देखने के लिए कृपया Test Input पर क्लिक करें", - "remove_pattern": "पैटर्न हटाएँ", - "add_pattern": "पैटर्न जोड़ें", - "remove_pattern_confirm_msg": "क्या आप वाकई इस पैटर्न को फ़ील्ड से हटाना चाहते हैं?", - "failed_to_test_string": "स्ट्रिंग परीक्षण करने में विफल", - "select_detect_at_option": "कृपया detect at विकल्प चुनें" - }, - "search_history": { - "title": "Search History", - "get_history": "Get History", - "executed_at": "Executed At", - "sql_query": "SQL Query", - "resuls": "Results", - "wrapText": "Wrap Text", - "delayMessage": "Search History might be delayed by", - "results": "परिणाम" - }, - "correlation": { - "title": "Correlated Metrics - {service}", - "loading": "Loading correlated metrics...", - "loadingMetrics": "Loading {count} metric stream(s)", - "failedToLoad": "Failed to load correlation dashboard", - "retryButton": "Retry", - "noMetrics": "No metrics available for correlation", - "matchedDimensions": "Matched Dimensions", - "metricsButton": "{count} Metric(s)", - "metricsTooltip": "Select metric streams to display", - "selectMetrics": "Select Metric Streams", - "correlatedLogs": "Logs", - "correlatedMetrics": "Metrics", - "correlatedTraces": "Traces", - "clickToLoadLogs": "Click to load correlated logs", - "clickToLoadMetrics": "Click to load correlated metrics", - "clickToLoadTraces": "Click to load correlated traces", - "loadingLogs": "Loading logs...", - "noLogsFound": "No correlated logs found", - "service": "Service: {service}", - "tracesPlaceholder": "Traces will be implemented here", - "correlatedTracesFor": "Correlated traces for service: {service}", - "metricsSelector": "{selected} of {total} Metric(s)", - "dimensions": "Filters", - "all": "All", - "loadingTraces": "Loading correlated traces...", - "tracesError": "Failed to load traces", - "directTraceMatch": "Direct Trace Match", - "openTraceInNewWindow": "Open trace in new window", - "spans": "span(s)", - "dimensionBasedCorrelation": "Dimension-based Correlation", - "tracesFromService": "Traces from service: {service}", - "noTracesFound": "No correlated traces found", - "noTracesDescription": "No traces found for service {service} in the selected time range", - "filters": "Filters", - "semanticFieldGroupsTitle": "Field Mappings", - "semanticFieldGroupsCaption": "Define field name mappings for correlation and deduplication (e.g., host, hostname, node → 'host' group)", - "groupsLabel": "groups", - "importFromJson": "Import from JSON", - "addCustomGroup": "Add Custom Group", - "actionNormalize": "Lowercase and trim values for matching", - "removeSemanticGroup": "Remove Semantic Group", - "fieldNamePlaceholder": "Field names (comma-separated)", - "category": "Category", - "categoryHint": "Filter groups by category", - "noSemanticGroupMessage": "No semantic groups in this category. Select a different category or add a custom group.", - "showingGroups": "Showing {filterGroupLength} of {localGroupLength} total groups", - "deduplicateFields": "Deduplication Fields", - "deduplicateFieldTooltip": "Select which field mappings to use for deduplication fingerprinting", - "alertDeduplicationMessage": "Alerts with the same values for these fields will be deduplicated (e.g., same fingerprint = same field values)", - "atLeastOneDeduplicationField": "At least one field mapping is required for deduplication", - "scope": "Scope", - "scopeTooltip": "Scope dimensions define environmental boundaries (cluster, region, host) and are concatenated to form the scope part of the Service Identity: {scope}/{workload}", - "stable": "Stable", - "stableTooltip": "Stable dimensions have low cardinality and are used for correlation key computation", - "normalize": "Normalize", - "noSemanticGroupsInCategory": "No semantic groups in category: {category}", - "loadingCorrelation": "सहसंबंध डेटा लोड हो रहा है...", - "logs": { - "title": "सहसंबद्ध लॉग", - "filtersLabel": "फ़िल्टर", - "loading": "लॉग लोड हो रहे हैं...", - "loadingDetails": "सहसंबद्ध स्ट्रीम से लॉग प्राप्त किए जा रहे हैं...", - "error": "लॉग लोड करने में असमर्थ", - "errorDetails": "लॉग डेटा प्राप्त करते समय एक त्रुटि हुई। कृपया पुनः प्रयास करें।", - "noData": "कोई लॉग नहीं मिला", - "noDataDetails": "सहसंबंध फ़िल्टर से मेल खाने वाले कोई लॉग नहीं मिले। फ़िल्टर या समय सीमा समायोजित करने का प्रयास करें।", - "viewLogs": "लॉग देखें", - "resetFilters": "फ़िल्टर रीसेट करें", - "editFilters": "फ़िल्टर संपादित करें", - "editTimeRange": "समय सीमा संपादित करें", - "selectValue": "मान चुनें", - "stableDimension": "स्थिर आयाम - पॉड रीस्टार्ट में सुसंगत", - "unstableDimension": "अस्थिर आयाम - पॉड रीस्टार्ट पर बदल सकता है", - "resultsCount": "{stream} में {count} लॉग मिले ({time}ms)", - "filters": { - "title": "सहसंबंध फ़िल्टर संपादित करें", - "description": "अपनी सहसंबंध क्वेरी को परिष्कृत करने के लिए आयाम फ़िल्टर समायोजित करें। मिलान किए गए आयाम स्थिर पहचानकर्ता हैं, जबकि अतिरिक्त आयाम पॉड रीस्टार्ट पर बदल सकते हैं।", - "matchedDimensions": "मिलान किए गए आयाम (स्थिर)", - "matchedDimensionsTooltip": "ये आयाम स्थिर पहचानकर्ता हैं जो पॉड रीस्टार्ट में सुसंगत रहते हैं और संबंधित टेलीमेट्री से मिलान करने के लिए उपयोग किए जाते हैं।", - "additionalDimensions": "अतिरिक्त आयाम (अस्थिर)", - "additionalDimensionsTooltip": "ये आयाम पॉड रीस्टार्ट पर बदल सकते हैं (उदा., pod_name, container_id)। आप खोज को व्यापक बनाने के लिए उन्हें 'All Values' पर सेट कर सकते हैं।", - "stableDimension": "स्थिर आयाम", - "unstableDimension": "अस्थिर - रीस्टार्ट पर बदलता है", - "setToAll": "सभी मानों पर सेट करें", - "showingAll": "सभी मान दिखाए जा रहे हैं", - "wildcardHelp": "फ़िल्टरिंग में इस आयाम को अनदेखा करने के लिए 'All Values' का उपयोग करें", - "noAdditionalDimensions": "कोई अतिरिक्त आयाम उपलब्ध नहीं" - }, - "timeRange": { - "title": "समय सीमा समायोजित करें", - "sourceTime": "स्रोत लॉग समय", - "window": "समय विंडो", - "minute1": "±1 मिनट", - "minute5": "±5 मिनट (डिफ़ॉल्ट)", - "minute15": "±15 मिनट", - "minute30": "±30 मिनट", - "hour1": "±1 घंटा", - "custom": "कस्टम", - "customStart": "कस्टम प्रारंभ समय", - "customEnd": "कस्टम समाप्ति समय", - "currentRange": "वर्तमान समय सीमा", - "start": "प्रारंभ", - "end": "समाप्ति", - "duration": "अवधि", - "startBeforeEnd": "प्रारंभ समय समाप्ति समय से पहले होना चाहिए", - "endAfterStart": "समाप्ति समय प्रारंभ समय के बाद होना चाहिए" - } - }, - "noDataFound": "कोई डेटा नहीं मिला", - "noLogsDescription": "चयनित समय सीमा में इस सहसंबंध के लिए कोई लॉग नहीं मिला।", - "tracesErrorDetails": "ट्रेस डेटा प्राप्त करते समय एक त्रुटि हुई। कृपया पुनः प्रयास करें।", - "metricsError": "मेट्रिक्स लोड करने में असमर्थ", - "metricsErrorDetails": "मेट्रिक्स डेटा प्राप्त करते समय एक त्रुटि हुई। कृपया पुनः प्रयास करें।", - "noMetricsDescription": "चार्ट देखने के लिए साइडबार से मेट्रिक्स चुनें।", - "errorRetrievingTraces": "ट्रेस प्राप्त करते समय त्रुटि हुई।", - "viewInTraces": "Traces में देखें", - "exportToJson": "JSON में एक्सपोर्ट करें", - "serviceGroupProtected": "सेवा समूह हटाया नहीं जा सकता। आप केवल मैप किए गए फ़ील्ड संशोधित कर सकते हैं।", - "isWorkloadType": "सेवा पहचानकर्ता", - "isWorkloadTypeTooltip": "सक्षम होने पर, इस समूह का उपयोग किसी सेवा की विशिष्ट पहचान के लिए किया जाता है (उदा. cluster, namespace, deployment)। उन समूहों के लिए अक्षम करें जो किसी सेवा के माध्यम से संचालन का वर्णन करते हैं, जैसे HTTP विधि या डेटाबेस नाम।" - }, - "search_scheduler_job": { - "title": "Search Job Scheduler", - "get_jobs": "Get Jobs", - "user_id": "User ID", - "created_at": "Created At", - "start_time": "Start Time", - "duration": "Duration", - "status": "Status", - "actions": "Actions", - "cancel": "Cancel", - "delete": "Delete", - "restart": "Restart", - "explore": "Explore", - "status_pending": "Pending", - "status_running": "Running", - "status_finished": "Finished", - "status_cancelled": "Cancelled", - "status_unknown": "Unknown", - "sql_query": "SQL Query", - "function_definition": "Function Definition", - "more_details": "More Details", - "query_function": "Query / Function", - "copy_success": "Copied Successfully!", - "copy_error": "Error while copy content.", - "results": "Results", - "max_limit": "Max Limit", - "cancel_job_title": "Cancel Scheduled Search", - "cancel_job_message": "Are you sure you want to cancel this scheduled search?", - "delete_job_title": "Delete Scheduled Search", - "delete_job_message": "Are you sure you want to delete this scheduled search?", - "job_cancelled_success": "Search Job has been cancelled successfully", - "job_cancel_failed": "Failed to cancel search job", - "job_restarted_success": "Search Job has been restarted successfully", - "job_restart_failed": "Failed to restart search job", - "job_deleted_success": "Search Job has been deleted successfully", - "job_delete_failed": "Failed to delete search job", - "job_applied_success": "Search Job have been applied successfully", - "fetch_failed": "Failed to fetch search history. Please try again later.", - "logs": "Logs" - }, - "pipeline_list": { - "sql_query": "SQL Query", - "export": "Export", - "pause": "Pause", - "resume": "Resume", - "last_error": "Last error", - "error_summary": "Error Summary", - "node_errors": "Node Errors", - "close": "Close", - "resume_pipeline_title": "Resume Pipeline Ingestion", - "tab_all": "All", - "tab_scheduled": "Scheduled", - "tab_realtime": "Real-Time", - "stream_type": "Stream Type", - "frequency": "Frequency", - "period": "Period", - "cron": "Cron", - "type": "Type", - "run_pipeline": "Run Pipeline", - "showLegends": "Show Legends" - }, - "alert_list": { - "alert_details": "Alert Details", - "alert_history": "अलर्ट इतिहास" - }, - "sreChat": { - "emptyMessage": "Ask me anything about your alerts and incidents", - "inputPlaceholder": "Ask SRE Assistant...", - "clearChatTitle": "Clear Chat", - "clearChatMessage": "Are you sure you want to clear this conversation?", - "copiedToClipboard": "Copied to clipboard" - }, - "emptyState": { - "noSearchResults": { - "title": "हमें कोई डेटा नहीं मिला", - "description": "आपके वर्तमान फ़िल्टर या समय सीमा से कुछ भी मेल नहीं खाता। अपनी खोज को व्यापक बनाने, समय सीमा बढ़ाने, या फ़िल्टर साफ़ करने का प्रयास करें।", - "action": "फ़िल्टर साफ़ करें", - "actionDesc": "लागू सभी फ़िल्टर रीसेट करें" - }, - "noLogs": { - "title": "इस सीमा में कोई लॉग नहीं", - "description": "चयनित स्ट्रीम और समय सीमा के लिए हमें कोई लॉग नहीं मिला। व्यापक समय सीमा या किसी अन्य स्ट्रीम का प्रयास करें।", - "action": "समय सीमा बढ़ाएँ", - "actionDesc": "लंबी अवधि में खोजें" - }, - "noStreamSelected": { - "title": "शुरू करने के लिए एक स्ट्रीम चुनें", - "description": "बाईं ओर ड्रॉपडाउन से एक स्ट्रीम चुनें, फिर एक्सप्लोर करना शुरू करने के लिए 'Run query' दबाएँ। आप अतिरिक्त फ़िल्टर भी लागू कर सकते हैं और दिनांक सीमा समायोजित कर सकते हैं।" - }, - "noQueryApplied": { - "title": "परिणाम देखने के लिए क्वेरी चलाएँ", - "description": "अपने फ़िल्टर समायोजित करें और इस स्ट्रीम के लिए ईवेंट लोड करने हेतु 'Run query' पर क्लिक करें।" - }, - "noDashboards": { - "title": "अपना पहला डैशबोर्ड बनाएँ", - "description": "डैशबोर्ड आपके मेट्रिक्स, लॉग और ट्रेस को एक ही दृश्य में एक साथ लाते हैं। शुरू करने के लिए एक बनाएँ।", - "action": "नया डैशबोर्ड", - "actionDesc": "एक खाली कैनवास से शुरू करें", - "import": "डैशबोर्ड इम्पोर्ट करें", - "importDesc": "एक डैशबोर्ड JSON फ़ाइल अपलोड करें", - "templates": "टेम्पलेट ब्राउज़ करें", - "templatesDesc": "एक कम्युनिटी डैशबोर्ड से शुरू करें" - }, - "noDashboardsInFolder": { - "title": "इस फ़ोल्डर में कोई डैशबोर्ड नहीं", - "description": "यह फ़ोल्डर खाली है। यहाँ एक डैशबोर्ड जोड़ें या किसी अन्य फ़ोल्डर से एक को स्थानांतरित करें।", - "action": "नया डैशबोर्ड", - "actionDesc": "इस फ़ोल्डर में एक डैशबोर्ड बनाएँ", - "import": "डैशबोर्ड इम्पोर्ट करें", - "importDesc": "एक डैशबोर्ड JSON फ़ाइल अपलोड करें", - "templates": "टेम्पलेट ब्राउज़ करें", - "templatesDesc": "एक कम्युनिटी डैशबोर्ड से शुरू करें" - }, - "noGroups": { - "title": "अभी तक कोई समूह नहीं", - "description": "समूह आपको एक साथ कई उपयोगकर्ताओं की अनुमतियाँ प्रबंधित करने देते हैं। शुरू करने के लिए एक बनाएँ।", - "action": "नया समूह", - "actionDesc": "एक उपयोगकर्ता समूह बनाएँ" - }, - "noRoles": { - "title": "अभी तक कोई भूमिका नहीं", - "description": "भूमिकाएँ परिभाषित करती हैं कि उपयोगकर्ता कौन-सी क्रियाएँ कर सकते हैं। पहुँच नियंत्रित करने के लिए एक कस्टम भूमिका बनाएँ।", - "action": "नई भूमिका", - "actionDesc": "एक कस्टम पहुँच भूमिका परिभाषित करें" - }, - "noAnomalyConfigs": { - "title": "कोई असामान्यता पहचान कॉन्फ़िगर नहीं की गई", - "description": "अपने डेटा में असामान्य पैटर्न की स्वचालित पहचान के लिए असामान्यता पहचान सेट करें।", - "action": "नया कॉन्फ़िग", - "actionDesc": "असामान्यता पहचान कॉन्फ़िगर करें" - }, - "noApiLimits": { - "title": "कोई API सीमा कॉन्फ़िगर नहीं की गई", - "description": "API सीमाएँ नियंत्रित करती हैं कि प्रत्येक संगठन प्रति समय विंडो कितना डेटा इन्जेस्ट और क्वेरी कर सकता है।" - }, - "noRoleLimits": { - "title": "कोई भूमिका सीमा कॉन्फ़िगर नहीं की गई", - "description": "भूमिका सीमाएँ किसी संगठन के भीतर अलग-अलग भूमिकाओं पर लागू इन्जेस्ट और क्वेरी कोटा परिभाषित करती हैं।" - }, - "noIngestionTokens": { - "title": "अभी तक कोई इन्जेशन टोकन नहीं", - "description": "इन्जेशन टोकन लॉग, मेट्रिक्स और ट्रेस भेजते समय डेटा स्रोतों को प्रमाणित करते हैं।", - "action": "नया टोकन", - "actionDesc": "एक इन्जेशन टोकन जनरेट करें" - }, - "noOrganizations": { - "title": "अभी तक कोई संगठन नहीं", - "description": "संगठन आपके उपयोगकर्ताओं और डेटा को एक साथ समूहित करते हैं। शुरू करने के लिए एक बनाएँ।" - }, - "noAlertDestinations": { - "title": "अभी तक कोई गंतव्य नहीं", - "description": "गंतव्य परिभाषित करते हैं कि अलर्ट सूचनाएँ कहाँ भेजी जाती हैं — Slack, ईमेल, वेबहुक और बहुत कुछ।", - "action": "नया गंतव्य", - "actionDesc": "एक सूचना चैनल कनेक्ट करें" - }, - "noPipelineDestinations": { - "title": "अभी तक कोई गंतव्य नहीं", - "description": "पाइपलाइन आउटपुट के लिए बाहरी लक्ष्य — HTTP एंडपॉइंट और रिमोट राइट लक्ष्य।", - "action": "नया गंतव्य", - "actionDesc": "एक पाइपलाइन गंतव्य कनेक्ट करें" - }, - "noAlertTemplates": { - "title": "अभी तक कोई टेम्पलेट नहीं", - "description": "टेम्पलेट अलर्ट सूचना संदेशों का प्रारूप परिभाषित करते हैं।", - "action": "नया टेम्पलेट", - "actionDesc": "एक सूचना टेम्पलेट बनाएँ" - }, - "noEvalTemplates": { - "title": "अभी तक कोई मूल्यांकन टेम्पलेट नहीं", - "description": "मूल्यांकन टेम्पलेट LLM मूल्यांकनों के लिए पुन: उपयोग योग्य स्कोरिंग मानदंड परिभाषित करते हैं।", - "action": "नया टेम्पलेट", - "actionDesc": "एक मूल्यांकन टेम्पलेट बनाएँ" - }, - "noEnrichmentTables": { - "title": "अभी तक कोई संवर्धन तालिका नहीं", - "description": "संवर्धन तालिकाएँ आपको क्वेरी समय पर अपने लॉग डेटा में अतिरिक्त संदर्भ जोड़ने देती हैं।", - "action": "नई तालिका", - "actionDesc": "एक संवर्धन तालिका बनाएँ" - }, - "noCipherKeys": { - "title": "अभी तक कोई सिफर कुंजी नहीं", - "description": "सिफर कुंजियों का उपयोग आपकी डेटा स्ट्रीम में संवेदनशील फ़ील्ड को एन्क्रिप्ट करने के लिए किया जाता है।", - "action": "नई कुंजी", - "actionDesc": "एक सिफर कुंजी जनरेट करें" - }, - "noAiToolsets": { - "title": "अभी तक कोई AI टूलसेट नहीं", - "description": "AI टूलसेट आपके संगठन को बाहरी AI क्षमताओं से जोड़ते हैं।", - "action": "नया टूलसेट", - "actionDesc": "एक AI टूलसेट जोड़ें" - }, - "noLlmProviders": { - "title": "कोई LLM प्रदाता कॉन्फ़िगर नहीं किया गया", - "description": "AI-संचालित सुविधाएँ सक्षम करने के लिए एक भाषा मॉडल प्रदाता कनेक्ट करें।", - "action": "प्रदाता जोड़ें", - "actionDesc": "एक LLM प्रदाता कॉन्फ़िगर करें" - }, - "noDiscoveredServices": { - "title": "कोई सेवा खोजी नहीं गई", - "description": "ट्रेस आना शुरू होते ही सेवाएँ यहाँ स्वचालित रूप से दिखाई देंगी।" - }, - "noNodes": { - "title": "कोई नोड उपलब्ध नहीं", - "description": "क्लस्टर नोड पंजीकृत होते ही यहाँ दिखाई देंगे।" - }, - "noSourceMaps": { - "title": "कोई सोर्स मैप अपलोड नहीं किया गया", - "description": "अपनी RUM त्रुटि रिपोर्ट में पठनीय स्टैक ट्रेस सक्षम करने के लिए सोर्स मैप अपलोड करें।", - "action": "अपलोड करें", - "actionDesc": "एक सोर्स मैप फ़ाइल अपलोड करें" - }, - "noBackfillJobs": { - "title": "कोई बैकफ़िल जॉब नहीं", - "description": "बैकफ़िल जॉब ऐतिहासिक डेटा को एक पाइपलाइन के माध्यम से पुन: संसाधित करते हैं। शुरू करने के लिए एक चलाएँ।" - }, - "noPipelineHistory": { - "title": "अभी तक कोई पाइपलाइन इतिहास नहीं", - "description": "आपकी पाइपलाइनें चलने के बाद पाइपलाइन निष्पादन इतिहास यहाँ दिखाई देगा।" - }, - "noPipelines": { - "title": "अपनी पहली पाइपलाइन बनाएँ", - "description": "पाइपलाइनें आपके डेटा को आते ही रूपांतरित और रूट करती हैं। अपनी स्ट्रीम को आकार देना शुरू करने के लिए एक सेट करें।", - "action": "नई पाइपलाइन", - "actionDesc": "शुरुआत से एक फ़्लो बनाएँ", - "import": "पाइपलाइन इम्पोर्ट करें", - "importDesc": "एक पाइपलाइन परिभाषा अपलोड करें" - }, - "noFunctions": { - "title": "अपना पहला फ़ंक्शन बनाएँ", - "description": "फ़ंक्शन इन्जेस्ट या क्वेरी समय पर आपके डेटा को संवर्धित और पुनर्आकार देते हैं। शुरू करने के लिए एक जोड़ें।", - "action": "नया फ़ंक्शन", - "actionDesc": "एक नया VRL फ़ंक्शन लिखें" - }, - "noStreams": { - "title": "आपके पहले डेटा की प्रतीक्षा में", - "description": "अभी तक कोई डेटा नहीं आया है। एक स्रोत कनेक्ट करें और आपकी स्ट्रीम यहाँ स्वचालित रूप से दिखाई देंगी।", - "action": "इन्जेशन सेट करें", - "actionDesc": "एक डेटा स्रोत कनेक्ट करें" - }, - "noAlerts": { - "title": "अपना पहला अलर्ट बनाएँ", - "description": "जैसे ही आपका डेटा किसी सीमा को पार करता है, अलर्ट आपको सूचित करते हैं। निगरानी शुरू करने के लिए एक परिभाषित करें।", - "action": "नया अलर्ट", - "actionDesc": "निगरानी के लिए एक शर्त परिभाषित करें" - }, - "noIncidents": { - "title": "कोई सक्रिय घटना नहीं", - "description": "आप पूरी तरह अद्यतन हैं — अभी आपके ध्यान की किसी चीज़ की आवश्यकता नहीं है। ट्रिगर की गई घटनाएँ यहाँ दिखाई देंगी।" - }, - "noLLMInsights": { - "title": "अभी तक कोई LLM गतिविधि नहीं", - "description": "इस डैशबोर्ड को भरने के लिए OpenTelemetry Gen-AI सिमेंटिक कन्वेंशन के साथ अपनी सेवाओं को इंस्ट्रूमेंट करें और कम से कम एक ट्रेस इन्जेस्ट करें।", - "action": "OpenTelemetry के साथ इंस्ट्रूमेंट करें", - "actionDesc": "अपने ट्रेस पर gen_ai_* एट्रिब्यूट कैप्चर करें" - }, - "noLLMSessions": { - "title": "अभी तक कोई LLM सत्र नहीं", - "description": "सत्र gen_ai_conversation_id के अनुसार समूहित किए जाते हैं। अपनी सेवाओं को इंस्ट्रूमेंट करें ताकि प्रत्येक वार्तालाप अपने ट्रेस को टैग करे, और सत्र यहाँ दिखाई देंगे।", - "action": "OpenTelemetry के साथ इंस्ट्रूमेंट करें", - "actionDesc": "स्पैन को gen_ai_conversation_id से टैग करें" - }, - "noScorers": { - "title": "अभी तक कोई स्कोरर नहीं", - "description": "स्कोरर आपके स्कोर कॉन्फ़िग के विरुद्ध LLM प्रतिक्रियाओं को ग्रेड करते हैं — एक LLM जज से शुरू करें या लाइब्रेरी से एक इम्पोर्ट करें।", - "action": "स्कोरर बनाएँ", - "actionDesc": "एक LLM जज या रिमोट स्कोरर परिभाषित करें" - }, - "noEvalJobs": { - "title": "अभी तक कोई मूल्यांकन जॉब नहीं", - "description": "जॉब एक LLM स्ट्रीम के विरुद्ध स्कोरर शेड्यूल करते हैं। एक नियमित अंतराल पर वार्तालापों को ग्रेड करना शुरू करने के लिए एक बनाएँ।", - "action": "मूल्यांकन जॉब बनाएँ", - "actionDesc": "एक स्ट्रीम + स्कोरर + अंतराल चुनें" - }, - "noScoreConfigs": { - "title": "अभी तक कोई स्कोर कॉन्फ़िग नहीं", - "description": "स्कोर कॉन्फ़िग वह स्कीमा परिभाषित करते हैं जो स्कोरर उत्पन्न करते हैं — संख्यात्मक, बूलियन, या श्रेणीबद्ध। स्कोरिंग शुरू करने के लिए एक जोड़ें।", - "action": "स्कोर कॉन्फ़िग बनाएँ", - "actionDesc": "स्कोर का आकार + स्वस्थ सीमा परिभाषित करें" - }, - "loadError": { - "title": "कुछ गलत हो गया", - "description": "हम यह डेटा लोड नहीं कर सके। यह आमतौर पर अस्थायी होता है — कुछ क्षण में फिर से प्रयास करें।", - "action": "पुनः प्रयास करें", - "actionDesc": "डेटा फिर से लोड करने का प्रयास करें" - }, - "noData": { - "title": "अभी यहाँ कुछ नहीं", - "description": "अभी दिखाने के लिए कोई डेटा नहीं है।" - }, - "noTraces": { - "title": "कोई ट्रेस नहीं मिला", - "description": "चयनित सेवा और समय सीमा से कोई ट्रेस मेल नहीं खाता। व्यापक समय सीमा या किसी अन्य सेवा का प्रयास करें।" - }, - "noServiceGraph": { - "title": "कोई सेवा ग्राफ़ डेटा नहीं", - "description": "लंबी समय सीमा पर क्वेरी करने का प्रयास करें, या सुनिश्चित करें कि आपकी सेवाएँ स्पैन मेट्रिक्स उत्सर्जित कर रही हैं।" - }, - "noServicesCatalog": { - "title": "कोई सेवा नहीं मिली", - "description": "चयनित समय सीमा में कोई सेवा नहीं मिली। व्यापक सीमा या किसी अन्य स्ट्रीम का प्रयास करें।" - }, - "noSearchHistory": { - "title": "अभी तक कोई खोज इतिहास नहीं", - "description": "आपके द्वारा चलाई गई खोजें यहाँ सूचीबद्ध होंगी ताकि आप उन्हें पुनः देख और पुनः चला सकें।" - }, - "noSearchJobs": { - "title": "कोई निर्धारित खोज जॉब नहीं", - "description": "आपके द्वारा निर्धारित दीर्घकालिक खोजें यहाँ दिखाई देंगी, जहाँ आप उनकी स्थिति ट्रैक कर सकते हैं और समाप्त होने पर परिणाम एक्सप्लोर कर सकते हैं।" - }, - "noUsers": { - "title": "अभी तक कोई उपयोगकर्ता नहीं", - "description": "इस संगठन में सहयोग के लिए अपने सहयोगियों को आमंत्रित करें।", - "action": "उपयोगकर्ता जोड़ें", - "actionDesc": "ईमेल द्वारा एक सहयोगी को आमंत्रित करें" - }, - "noReports": { - "title": "अभी तक कोई रिपोर्ट नहीं", - "description": "अपने इनबॉक्स में डैशबोर्ड वितरित करवाने के लिए एक रिपोर्ट शेड्यूल करें।", - "action": "नई रिपोर्ट", - "actionDesc": "एक डैशबोर्ड वितरण शेड्यूल करें" - }, - "noQueries": { - "title": "कोई चालू क्वेरी नहीं", - "description": "अभी कोई सक्रिय क्वेरी नहीं है। दीर्घकालिक क्वेरियाँ चलते समय यहाँ दिखाई देंगी।" - }, - "noServiceAccounts": { - "title": "अभी तक कोई सेवा खाता नहीं", - "description": "सेवा खाते एप्लिकेशन को API के साथ प्रमाणित होने देते हैं। शुरू करने के लिए एक बनाएँ।", - "action": "सेवा खाता जोड़ें", - "actionDesc": "एक API सेवा खाता बनाएँ" - }, - "noInvitations": { - "title": "कोई लंबित आमंत्रण नहीं", - "description": "आपके द्वारा भेजे या प्राप्त किए गए आमंत्रण यहाँ दिखाई देंगे।" - }, - "filtered": { - "title": "कोई {noun} नहीं मिला", - "description": "आपके वर्तमान फ़िल्टर या खोज से कोई {noun} मेल नहीं खाता। उन्हें समायोजित या साफ़ करने का प्रयास करें।", - "action": "फ़िल्टर साफ़ करें", - "actionDesc": "सभी फ़िल्टर और खोज रीसेट करें", - "fallbackNoun": "परिणाम" - }, - "nouns": { - "logs": "लॉग", - "dashboards": "डैशबोर्ड", - "pipelines": "पाइपलाइनें", - "functions": "फ़ंक्शन", - "streams": "स्ट्रीम", - "alerts": "अलर्ट", - "incidents": "घटनाएँ", - "traces": "ट्रेस", - "searches": "खोजें", - "searchJobs": "खोज जॉब", - "users": "उपयोगकर्ता", - "reports": "रिपोर्ट", - "queries": "क्वेरियाँ", - "serviceAccounts": "सेवा खाते", - "invitations": "आमंत्रण", - "groups": "समूह", - "roles": "भूमिकाएँ", - "anomalyConfigs": "असामान्यता पहचान कॉन्फ़िग", - "apiLimits": "API सीमाएँ", - "roleLimits": "भूमिका सीमाएँ", - "ingestionTokens": "इन्जेशन टोकन", - "organizations": "संगठन", - "alertDestinations": "गंतव्य", - "pipelineDestinations": "गंतव्य", - "alertTemplates": "टेम्पलेट", - "evalTemplates": "मूल्यांकन टेम्पलेट", - "enrichmentTables": "संवर्धन तालिकाएँ", - "cipherKeys": "सिफर कुंजियाँ", - "aiToolsets": "AI टूलसेट", - "llmProviders": "LLM प्रदाता", - "sourceMaps": "सोर्स मैप", - "backfillJobs": "बैकफ़िल जॉब", - "scorers": "स्कोरर", - "evalJobs": "मूल्यांकन जॉब", - "scoreConfigs": "स्कोर कॉन्फ़िग", - "pipelineHistory": "पाइपलाइन इतिहास" - } - }, - "validation": { - "required": "यह फ़ील्ड आवश्यक है", - "fieldRequired": "फ़ील्ड आवश्यक है!", - "alphanumeric": "इनपुट अल्फ़ान्यूमेरिक होना चाहिए", - "organizationNameRequired": "संगठन का नाम आवश्यक है", - "selectOrganization": "कृपया एक संगठन चुनें", - "invalidFormat": "अमान्य प्रारूप", - "mustBeGreaterThan": "{value} से अधिक होना चाहिए", - "mustBeLessThan": "{value} से कम होना चाहिए" - }, - "evalTemplate": { - "header": "मूल्यांकन टेम्पलेट", - "newTemplate": "नया टेम्पलेट", - "editTemplate": "मूल्यांकन टेम्पलेट संपादित करें", - "createTemplate": "नया मूल्यांकन टेम्पलेट बनाएँ", - "noTemplatesFound": "कोई मूल्यांकन टेम्पलेट नहीं मिला", - "templateName": "टेम्पलेट नाम", - "responseType": "प्रतिक्रिया प्रकार", - "dimensions": "मूल्यांकन आयाम", - "promptTemplate": "प्रॉम्प्ट टेम्पलेट", - "statsTitle": "टेम्पलेट आँकड़े", - "avgQualityScore": "औसत गुणवत्ता स्कोर", - "usageStats": "उपयोग आँकड़े", - "totalEvaluations": "कुल मूल्यांकन", - "lastUsed": "अंतिम बार उपयोग किया गया", - "deleteTemplate": "टेम्पलेट हटाएँ", - "deleteConfirmation": "क्या आप वाकई \"{name}\" को हटाना चाहते हैं?", - "bulkDeleteConfirmation": "क्या आप वाकई {count} टेम्पलेट हटाना चाहते हैं?", - "search": "टेम्पलेट खोजें", - "loadFailed": "टेम्पलेट लोड करने में विफल", - "saveRequiredFields": "कृपया सभी आवश्यक फ़ील्ड भरें", - "updateSuccess": "टेम्पलेट सफलतापूर्वक अद्यतन किया गया", - "createSuccess": "टेम्पलेट सफलतापूर्वक बनाया गया", - "updateFailed": "टेम्पलेट अद्यतन करने में विफल", - "createFailed": "टेम्पलेट बनाने में विफल", - "deleteSuccess": "टेम्पलेट सफलतापूर्वक हटाया गया", - "deleteFailed": "टेम्पलेट हटाने में विफल", - "statsLoadFailed": "टेम्पलेट आँकड़े लोड करने में विफल", - "nameRequired": "नाम आवश्यक है", - "responseTypeRequired": "प्रतिक्रिया प्रकार आवश्यक है", - "dimensionRequired": "कम से कम एक आयाम आवश्यक है", - "contentRequired": "सामग्री आवश्यक है", - "never": "कभी नहीं", - "typeScore": "संख्यात्मक स्कोर (उदा., 0.0 - 1.0)", - "typeBoolean": "बाइनरी / पास-फेल (बूलियन)", - "typeCustom": "श्रेणीबद्ध / कस्टम टेक्स्ट", - "dimensionsTooltip": "मूल्यांकन आयाम जोड़ें (उदा. सटीकता, प्रासंगिकता)। कस्टम जोड़ने के लिए टाइप करें और Enter दबाएँ।", - "tooltipName": "इस मूल्यांकन टेम्पलेट के लिए एक अद्वितीय नाम।", - "tooltipDescription": "यह टेम्पलेट क्या मूल्यांकन करता है, यह समझाने के लिए वैकल्पिक विवरण।", - "tooltipResponseType": "LLM के मूल्यांकन आउटपुट का प्रारूप परिभाषित करता है — संख्यात्मक स्कोर, बूलियन पास/फेल, या कस्टम टेक्स्ट।", - "tooltipDimensions": "मूल्यांकन मानदंड जिन्हें LLM को आँकना चाहिए। डिफ़ॉल्ट से चुनें या एक कस्टम टाइप करें और Enter दबाएँ।", - "tooltipPromptTemplate": "LLM को भेजा गया प्रॉम्प्ट। मूल्यांकन समय पर गतिशील मानों के लिए प्लेसहोल्डर के रूप में {input}, {output}, और {context} का उपयोग करें।" - }, - "overview": { - "title": "सिस्टम अवलोकन", - "activeAnomalies": "सक्रिय असामान्यताएँ", - "activeIncidents": "सक्रिय घटनाएँ", - "services": "सेवाएँ", - "recentEvents": "हाल के ईवेंट", - "investigate": "जाँच करें →", - "viewAll": "सभी देखें", - "showingOf": "{total} में से {shown} दिखाए जा रहे हैं", - "colErrorRate": "त्रुटि दर", - "colLatency": "विलंबता", - "colReqs": "अनुरोध", - "untitledIncident": "अशीर्षक घटना", - "viewLatencyCharts": "विलंबता और RED चार्ट देखें", - "elevatedErrorRate": "बढ़ी हुई त्रुटि दर", - "reqPerSec": "अनुरोध/सेकंड", - "allClear": "सभी सिस्टम स्पष्ट", - "allClearDesc": "चयनित समय विंडो में कोई सक्रिय असामान्यता, घटना, या निम्नीकृत सेवा नहीं। आपका इंफ्रास्ट्रक्चर स्वस्थ दिखता है।", - "emptyActionAlerts": "अलर्ट नियम देखें", - "emptyActionAlertsDesc": "कॉन्फ़िगर किए गए अलर्ट और थ्रेशोल्ड की समीक्षा करें", - "emptyActionLogs": "लॉग एक्सप्लोर करें", - "emptyActionLogsDesc": "अपनी लॉग स्ट्रीम खोजें और फ़िल्टर करें", - "emptyActionTraces": "ट्रेस एक्सप्लोर करें", - "emptyActionTracesDesc": "वितरित ट्रेस और सेवा विलंबता का निरीक्षण करें" - }, - "chatHistory": { - "title": "चैट", - "newChat": "नई चैट", - "search": "खोजें", - "noMatches": "कोई मेल नहीं", - "noHistory": "कोई चैट इतिहास नहीं", - "delete": "हटाएँ", - "clearAll": "सभी साफ़ करें", - "clearAllTitle": "सभी चैट साफ़ करें", - "clearAllMessage": "यह सभी चैट इतिहास को स्थायी रूप से हटा देगा। यह क्रिया पूर्ववत नहीं की जा सकती।" - }, - "aiAssistant": { - "greeting": { - "morning": "सुप्रभात", - "afternoon": "नमस्कार", - "evening": "शुभ संध्या", - "night": "देर तक काम" - }, - "welcome": { - "taglineLead": "मैं हूँ", - "taglineHighlight": "O2 Assistant", - "taglineTail": "। मैं आपका", - "taglineSql": "SQL", - "taglineVrl": "VRL", - "taglinePromql": "PromQL", - "taglineAnd": "लिख सकता हूँ और आपके लॉग, ट्रेस, मेट्रिक्स और घटनाओं के माध्यम से आपका मार्गदर्शन कर सकता हूँ।", - "signedInAs": "इस रूप में साइन इन", - "role": "भूमिका", - "tryOneOfThese": "या इनमें से एक आज़माएँ" - }, - "capabilities": { - "query": { - "title": "एक क्वेरी लिखें", - "description": "लॉग, ट्रेस, RUM के लिए SQL, या मेट्रिक्स के लिए PromQL।", - "prompt": "मुझे एक क्वेरी लिखने में मदद करें" - }, - "incident": { - "title": "घटनाओं की जाँच करें", - "description": "लॉग, ट्रेस, अलर्ट में मूल-कारण — उदा. \"gateway-5xx क्यों ट्रिगर हुआ?\"", - "prompt": "मुझे एक घटना की जाँच करने में मदद करें" - }, - "dashboard": { - "title": "एक डैशबोर्ड बनाएँ", - "description": "किसी विषय से — उदा. \"K8s नोड स्वास्थ्य: CPU, मेमोरी, रीस्टार्ट\"। पैनल भी बनाता है।", - "prompt": "मुझे एक डैशबोर्ड या पैनल बनाने में मदद करें" - }, - "alert": { - "title": "एक अलर्ट बनाएँ", - "description": "थ्रेशोल्ड या निर्धारित अलर्ट, और इन्जेस्ट-टाइम VRL पाइपलाइनें।", - "prompt": "मुझे एक अलर्ट या पाइपलाइन बनाने में मदद करें" - } - }, - "suggestions": { - "vrlParseJson": "मेरे nginx लॉग से JSON पार्स करने के लिए VRL लिखें", - "regexRedact": "ईमेल को रिडैक्ट करने के लिए एक regex पैटर्न जनरेट करें", - "mapStreamSchema": "मेरी \"default\" स्ट्रीम स्कीमा मैप करें", - "promqlCpu": "80% से अधिक CPU का उपयोग करने वाले पॉड के लिए PromQL लिखें", - "datadogToO2": "इस Datadog क्वेरी को OpenObserve SQL में बदलें", - "lastAlertFired": "मेरा अंतिम अलर्ट क्यों ट्रिगर हुआ?" - }, - "placeholderRotation": { - "one": "मुझे पिछले एक घंटे की त्रुटियाँ दिखाएँ…", - "two": "nginx लॉग से JSON पार्स करने के लिए VRL लिखें…", - "three": "K8s नोड स्वास्थ्य के लिए एक डैशबोर्ड बनाएँ…" - }, - "autoNavigation": { - "label": "स्वतः नेविगेशन", - "enabledTooltip": "स्वतः नेविगेशन सक्षम - O2 Assistant बिना पुष्टि के स्वतः नेविगेट करेगा", - "disabledTooltip": "स्वतः नेविगेशन अक्षम - O2 Assistant नेविगेट करने से पहले पूछेगा" - }, - "attachImageTooltip": "छवियाँ संलग्न करें (PNG, JPEG, अधिकतम 2MB)" - }, - "awsMarketplace": { - "title": "AWS Marketplace पंजीकरण", - "subtitle": "अपना OpenObserve सदस्यता सेटअप पूरा करें", - "invalidLink": "अमान्य पंजीकरण लिंक", - "invalidLinkDescription": "यह पंजीकरण लिंक अमान्य है या समाप्त हो गया है। कृपया AWS Marketplace से फिर से सदस्यता लें।", - "goToMarketplace": "AWS Marketplace पर जाएँ", - "newUser": "OpenObserve पर नए हैं?", - "newUserDescription": "एक नया खाता और संगठन बनाएँ", - "createAccount": "खाता बनाएँ", - "existingUser": "पहले से एक खाता है?", - "existingUserDescription": "AWS बिलिंग के साथ एक नया संगठन बनाने के लिए लॉगिन करें", - "login": "लॉगिन", - "loggedInAs": "इस रूप में लॉग इन", - "createNewOrg": "नया संगठन बनाएँ", - "createNewOrgDescription": "AWS Marketplace बिलिंग के साथ एक नया संगठन बनाएँ", - "orgName": "संगठन नाम", - "createOrganization": "संगठन बनाएँ", - "linkToExisting": "मौजूदा संगठन से लिंक करें", - "linkToExistingDescription": "AWS बिलिंग को अपने किसी फ्री-टियर संगठन से लिंक करें", - "selectOrganization": "संगठन चुनें", - "linkAwsBilling": "AWS बिलिंग लिंक करें", - "settingUp": "आपकी सदस्यता सेट की जा रही है...", - "pleaseWait": "कृपया प्रतीक्षा करें जब तक हम आपका खाता कॉन्फ़िगर करते हैं।", - "waitingConfirmation": "AWS पुष्टि की प्रतीक्षा में", - "waitingDescription": "आपकी सदस्यता सक्रिय की जा रही है। इसमें आमतौर पर एक मिनट से कम समय लगता है।", - "customerId": "ग्राहक ID", - "subscriptionActivated": "सदस्यता सक्रिय हो गई!", - "activatedDescription": "आपकी AWS Marketplace सदस्यता अब सक्रिय है।", - "goToDashboard": "डैशबोर्ड पर जाएँ", - "paymentFailed": "भुगतान विफल", - "paymentFailedDescription": "आपके AWS Marketplace भुगतान में कोई समस्या थी। कृपया अपना AWS खाता जाँचें या AWS समर्थन से संपर्क करें।", - "contactSupport": "समर्थन से संपर्क करें", - "tryAgain": "पुनः प्रयास करें", - "activationTimeout": "सक्रियण टाइमआउट। यदि समस्या बनी रहती है तो कृपया समर्थन से संपर्क करें।" - }, - "storage_settings": { - "tabLabel": "BYOB", - "title": "अपनी खुद की बकेट लाएँ", - "notEnabled": "इस संगठन के लिए BYOB सक्षम नहीं है", - "notConfigured": "इस संगठन के डेटा के लिए एक कस्टम बकेट कॉन्फ़िगर करें", - "configured": "कॉन्फ़िगर किया गया", - "heroHeadline": "इसमें अपनी खुद की बकेट लाएँ", - "heroSub": "अपनी खुद की क्लाउड बकेट कनेक्ट करें, डेटा आपके इंफ्रास्ट्रक्चर में रहता है — पूर्ण नियंत्रण, शून्य लॉक-इन।", - "configureStorage": "स्टोरेज कॉन्फ़िगर करें", - "supportedProviders": "समर्थित प्रदाता", - "noStorageConfigured": "कोई बकेट कॉन्फ़िगर नहीं की गई", - "routeDataDesc": "इस संगठन के डेटा को एक समर्पित बकेट में रूट करें — अन्य संगठनों और ग्लोबल डिफ़ॉल्ट से स्वतंत्र रूप से।", - "perOrgIsolation": "प्रति-संगठन पृथक्करण", - "appliesImmediately": "नए डेटा पर तुरंत लागू होता है", - "usesOrgCredentials": "संगठन-स्कोप किए गए क्रेडेंशियल का उपयोग करता है", - "updateStorage": "बकेट अद्यतन करें", - "active": "सक्रिय", - "bucketName": "बकेट नाम", - "region": "क्षेत्र", - "serverUrl": "सर्वर url", - "accessKey": "एक्सेस कुंजी", - "secretKey": "गुप्त कुंजी", - "roleArn": "role arn", - "createdAt": "बनाने का समय", - "updatedAt": "अद्यतन समय", - "featureOwnDataTitle": "अपने डेटा को आद्योपांत स्वामित्व में रखें", - "featureOwnDataDesc": "इन्जेस्ट किए गए डेटा को सीधे अपनी खुद की बकेट में संग्रहीत करें और कौन इसे एक्सेस कर सकता है, इस पर पूर्ण नियंत्रण रखें।", - "featureSecureTitle": "सुरक्षित और अनुपालक", - "featureSecureDesc": "बारीक एक्सेस कुंजियाँ, आपका संवेदनशील डेटा आपके इंफ्रास्ट्रक्चर में रहता है।", - "goBack": "वापस जाएँ", - "newStorageConfiguration": "नई बकेट कॉन्फ़िगरेशन", - "selectProviderDesc": "इस संगठन के डेटा को संग्रहीत करने के लिए एक क्लाउड स्टोरेज प्रदाता चुनें।", - "bucketNameRequired": "बकेट नाम आवश्यक है", - "accessKeyRequired": "एक्सेस कुंजी आवश्यक है", - "secretKeyRequired": "गुप्त कुंजी आवश्यक है", - "serverURLRequired": "सर्वर URL आवश्यक है", - "storageAccountRequired": "स्टोरेज खाता नाम आवश्यक है", - "regionRequired": "क्षेत्र आवश्यक है", - "roleARNRequired": "Role ARN आवश्यक है", - "externalIdRequired": "External ID आवश्यक है", - "back": "पीछे", - "continue": "जारी रखें", - "save": "सहेजें", - "update": "अद्यतन करें", - "awsStsCloudInfo": "यह भूमिका ग्रहण करने और संचालन करने के लिए AWS sts का उपयोग करता है। आपको AWS कंसोल में इस भूमिका के लिए Openobserve AWS खाते को विश्वसनीय इकाई प्रकार के रूप में जोड़ना होगा। खाता जानकारी प्राप्त करने या इसे सेट करने में आगे की सहायता के लिए कृपया Openobserve टीम से संपर्क करें।", - "awsStsSelfHostedInfo": "यह भूमिका ग्रहण करने और संचालन करने के लिए AWS sts का उपयोग करता है। सुनिश्चित करें कि आपने इंस्टॉलेशन env में aws क्रेडेंशियल कॉन्फ़िगर किए हैं जिनकी इस भूमिका तक पहुँच है।" - }, - "aiToolset": { - "header": "AI टूलसेट", - "add": "नया AI टूलसेट", - "search": "AI टूलसेट खोजें", - "update": "AI टूलसेट अद्यतन करें", - "name": "नाम", - "nameRequired": "नाम आवश्यक है", - "nameInvalid": "केवल अक्षर, संख्याएँ, हाइफ़न और अंडरस्कोर की अनुमति है", - "nameTooLong": "नाम 256 वर्णों से अधिक नहीं होना चाहिए", - "kind": "प्रकार", - "kindRequired": "प्रकार आवश्यक है", - "description": "विवरण", - "actions": "क्रियाएँ", - "deleteTitle": "AI टूलसेट हटाएँ", - "deleteMessage": "क्या आप वाकई \"{name}\" को हटाना चाहते हैं?", - "loadFailed": "AI टूलसेट लोड करने में विफल। कृपया पुनः प्रयास करें।", - "createFailed": "AI टूलसेट बनाने में विफल। कृपया पुनः प्रयास करें।", - "updateFailed": "AI टूलसेट अद्यतन करने में विफल। कृपया पुनः प्रयास करें।", - "deleteFailed": "AI टूलसेट हटाने में विफल।", - "createdSuccessfully": "AI टूलसेट सफलतापूर्वक बनाया गया", - "updatedSuccessfully": "AI टूलसेट सफलतापूर्वक अद्यतन किया गया", - "deletedSuccessfully": "AI टूलसेट सफलतापूर्वक हटाया गया", - "mcpConfig": "MCP सर्वर कॉन्फ़िगरेशन", - "mcpUrl": "एंडपॉइंट URL", - "mcpUrlRequired": "एंडपॉइंट URL आवश्यक है", - "timeoutSeconds": "टाइमआउट (सेकंड)", - "headers": "HTTP हेडर", - "headerKey": "हेडर नाम", - "headerValue": "हेडर मान", - "addHeader": "हेडर जोड़ें", - "cliConfig": "CLI टूल कॉन्फ़िगरेशन", - "presets": "त्वरित भरें", - "cliCommand": "कमांड", - "cliCommandRequired": "कमांड आवश्यक है", - "allowedSubcommands": "अनुमत सबकमांड", - "subcommandsHint": "अल्पविराम से अलग की गई सूची, उदा. get, describe, logs — सभी की अनुमति देने के लिए खाली छोड़ें", - "maxOutputBytes": "अधिकतम आउटपुट (बाइट्स)", - "requiresConfirmation": "निष्पादन से पहले पुष्टि की आवश्यकता है", - "envVars": "एनवायरनमेंट वेरिएबल", - "envKey": "वेरिएबल नाम", - "envValue": "मान", - "addEnvVar": "वेरिएबल जोड़ें", - "credentialFiles": "क्रेडेंशियल फ़ाइलें", - "credEnvVar": "Env var नाम", - "credContent": "फ़ाइल सामग्री", - "credContentHint": "कच्ची फ़ाइल सामग्री (उदा. kubeconfig YAML)", - "addCredFile": "क्रेडेंशियल फ़ाइल जोड़ें", - "skillConfig": "स्किल कॉन्फ़िगरेशन", - "skillContent": "स्किल परिभाषा (Markdown)", - "skillContentPlaceholder": "# Skill Title\n\nDescribe what the skill does and provide examples...", - "skillContentRequired": "स्किल सामग्री आवश्यक है", - "genericConfig": "कॉन्फ़िगरेशन", - "genericData": "JSON कॉन्फ़िग", - "genericDataPlaceholder": "{}", - "invalidJson": "मान्य JSON होना चाहिए" - }, - "nlMode": { - "toggle": "प्राकृतिक भाषा मोड", - "noAdditionalOptions": "कोई अतिरिक्त विकल्प नहीं", - "generateVRL": "VRL जनरेट करें" - }, - "crossLinks": { - "header": "क्रॉस-लिंकिंग", - "addCrossLink": "क्रॉस-लिंक जोड़ें", - "editCrossLink": "क्रॉस-लिंक संपादित करें", - "name": "नाम", - "nameRequired": "नाम आवश्यक है", - "namePlaceholder": "उदा., ट्रेस विवरण देखें", - "urlTemplate": "URL टेम्पलेट", - "urlRequired": "URL आवश्यक है", - "urlPlaceholder": "उदा., https://example.com/trace/{'${field.__value}'}?from={'${start_time}'}&to={'${end_time}'}", - "urlHint": "{'${field.__name}'}, {'${field.__value}'}, {'${start_time}'}, {'${end_time}'}, {'${query}'}, {'${query_encoded}'} का उपयोग करें", - "fields": "फ़ील्ड", - "fieldsHint": "लिंक केवल तभी दिखाएँ जब रिकॉर्ड में कम से कम एक फ़ील्ड मौजूद हो", - "fieldSearchPlaceholder": "खोजने के लिए टाइप करें या कस्टम फ़ील्ड दर्ज करें", - "fieldInputPlaceholder": "फ़ील्ड नाम दर्ज करें और Enter दबाएँ या + पर क्लिक करें", - "noMatchingFields": "कोई मेल खाने वाला फ़ील्ड नहीं। कस्टम फ़ील्ड जोड़ने के लिए Enter या + दबाएँ।", - "emptyState": "कोई क्रॉस-लिंक कॉन्फ़िगर नहीं किया गया। एक बनाने के लिए \"{addLabel}\" पर क्लिक करें।", - "update": "अद्यतन करें", - "add": "जोड़ें", - "streamCrossLinks": "स्ट्रीम क्रॉस-लिंक", - "streamCrossLinksSubtitle": "इस स्ट्रीम के लिए विशिष्ट लिंक। ये संगठन-स्तरीय लिंक पर प्राथमिकता लेते हैं।", - "orgCrossLinks": "संगठन-स्तरीय लिंक (केवल पढ़ने योग्य)", - "orgCrossLinksSubtitle": "ये लिंक संगठन स्तर पर परिभाषित हैं। उन्हें संशोधित करने के लिए Organization Parameters पर जाएँ।", - "orgConfigTitle": "क्रॉस-लिंकिंग कॉन्फ़िगरेशन", - "orgConfigSubtitle": "ऐसे ग्लोबल क्रॉस-लिंक परिभाषित करें जो सभी स्ट्रीम पर लागू हों।", - "userGuide": "उपयोगकर्ता मार्गदर्शिका", - "guideIntro": "आप अपने URL टेम्पलेट में निम्नलिखित वेरिएबल का उपयोग कर सकते हैं:", - "guideFieldHeader": "फ़ील्ड जानकारी", - "guideFieldDesc": "उस फ़ील्ड को संदर्भित करें जिसने क्रॉस-लिंक को ट्रिगर किया:", - "guideFieldName": "फ़ील्ड नाम (उदा., trace_id, kubernetes_namespace_name)", - "guideFieldValue": "रिकॉर्ड से उस फ़ील्ड का मान", - "guideTimeHeader": "समय सीमा", - "guideTimeDesc": "वर्तमान चयनित समय अवधि को संदर्भित करें:", - "guideStartTime": "प्रारंभ समय (epoch मिलीसेकंड)", - "guideEndTime": "समाप्ति समय (epoch मिलीसेकंड)", - "guideTimeExample": "उदाहरण के लिए:", - "guideQueryHeader": "क्वेरी", - "guideQueryDesc": "वर्तमान SQL क्वेरी को संदर्भित करें:", - "guideQuery": "वर्तमान SQL क्वेरी", - "guideQueryEncoded": "Base64-एन्कोडेड SQL क्वेरी", - "guideExampleHeader": "उदाहरण" - }, - "modelPricing": { - "header": "LLM मॉडल मूल्य निर्धारण", - "matchingPriorityTooltip": "मॉडल मिलान प्राथमिकता: आपका संगठन > ग्लोबल > अंतर्निहित", - "searchPlaceholder": "मॉडल खोजें...", - "searchByModelName": "मॉडल नाम के अनुसार खोजें...", - "refresh": "रिफ़्रेश करें", - "testBtn": "परीक्षण", - "importBtn": "इम्पोर्ट करें", - "newModel": "नया मॉडल", - "noModels": "कोई मॉडल मूल्य निर्धारण परिभाषा नहीं", - "noModelsDesc": "LLM टोकन लागत ट्रैक करने के लिए एक कस्टम मूल्य निर्धारण परिभाषा जोड़ें।", - "modelsCount": "{count} मॉडल", - "exportSelected": "एक्सपोर्ट करें ({count})", - "deleteSelected": "हटाएँ ({count})", - "loadingModels": "मॉडल लोड हो रहे हैं...", - "tryAgain": "पुनः प्रयास करें", - "noModelsFound": "कोई मॉडल नहीं मिला", - "importTitle": "मॉडल मूल्य निर्धारण इम्पोर्ट करें", - "errorValidations": "त्रुटि सत्यापन", - "outputMessages": "आउटपुट संदेश", - "modelNameLabel": "मॉडल नाम *", - "matchPatternLabel": "मिलान पैटर्न *", - "modelPricingCreation": "मॉडल मूल्य निर्धारण निर्माण", - "fileUploadTab": "फ़ाइल अपलोड / JSON", - "urlImportTab": "URL इम्पोर्ट", - "editTitle": "मॉडल मूल्य निर्धारण संपादित करें", - "newTitle": "नया मॉडल मूल्य निर्धारण", - "modelDetails": "मॉडल विवरण", - "modelDetailsDesc": "इस नियम का नाम रखें और परिभाषित करें कि यह किन मॉडलों से मेल खाता है", - "modelNameField": "मॉडल नाम *", - "modelNameTooltip": "इस नियम का नाम रखें। आप कई प्रविष्टियों में समान नाम और मिलान पैटर्न का उपयोग करके मूल्य परिवर्तन ट्रैक कर सकते हैं।", - "matchPatternField": "मिलान पैटर्न (Regex) *", - "matchPatternTooltip": "इस मूल्य निर्धारण नियम को लागू करने के लिए इन्जेस्ट किए गए मॉडल नामों के विरुद्ध मिलान किया गया रेगुलर एक्सप्रेशन।", - "patternExamplesBtn": "पैटर्न उदाहरण देखें", - "patternExamplesTitle": "मिलान पैटर्न उदाहरण", - "patternExamplesDesc": "लोकप्रिय मॉडलों के लिए उपयोग किए जाने वाले सामान्य regex पैटर्न", - "patternExamplesModelCol": "मॉडल", - "patternExamplesPatternCol": "मिलान पैटर्न", - "copyPattern": "पैटर्न कॉपी करें", - "copied": "कॉपी किया गया!", - "pricingTiers": "मूल्य निर्धारण स्तर", - "pricingTiersDesc": "पहला स्तर डिफ़ॉल्ट है। उपयोग शर्तें पूरी होने पर अतिरिक्त स्तर लागू होते हैं।", - "tierName": "स्तर नाम", - "applyTierWhen": "यह स्तर तब लागू करें जब", - "quickSetup": "त्वरित सेटअप:", - "tokenPrices": "टोकन मूल्य", - "tokenPricesUnit": "— प्रति 1M टोकन $", - "usageKeyCol": "उपयोग कुंजी", - "pricePerMillionHeader": "$ / 1M टोकन", - "noPricesDefined": "अभी तक कोई मूल्य परिभाषित नहीं", - "noPricesDesc": "ऊपर त्वरित सेटअप का उपयोग करें या नीचे एक मूल्य जोड़ें", - "usageType": "उपयोग प्रकार", - "perThousand": "प्रति 1K", - "perMillion": "प्रति 1M", - "pricePreview": "मूल्य पूर्वावलोकन", - "addTier": "स्तर जोड़ें", - "cancel": "रद्द करें", - "save": "सहेजें", - "colModel": "मॉडल", - "colMatchPattern": "मिलान पैटर्न", - "colPricing": "मूल्य निर्धारण (प्रति 1M टोकन)", - "colActions": "क्रियाएँ", - "colPattern": "पैटर्न", - "colPricingSimple": "मूल्य निर्धारण", - "colModelTooltip": "मूल्य निर्धारण नियम का प्रदर्शन नाम।", - "colMatchPatternTooltip": "आने वाले स्पैन पर मॉडल नाम के विरुद्ध मिलान किया गया एक regex पैटर्न। नियमों का मूल्यांकन प्राथमिकता के अनुसार किया जाता है (आपका संगठन → ग्लोबल → अंतर्निहित) — पहला मिलान जीतता है। एक स्ट्राइकथ्रू पैटर्न का अर्थ है कि यह एक उच्च-प्राथमिकता नियम द्वारा छाया में है और कभी उपयोग नहीं किया जाएगा।", - "colPricingTooltip": "डिफ़ॉल्ट स्तर के लिए प्रति-टोकन मूल्य, प्रति 1 मिलियन टोकन लागत के रूप में प्रदर्शित।", - "testMatchTitle": "मॉडल मिलान परीक्षण करें", - "testMatchSubtitle": "अनुकरण करें कि आपके स्पैन से एक मॉडल नाम मूल्य निर्धारण नियमों के विरुद्ध कैसे मेल खाएगा।", - "modelNameInput": "मॉडल नाम", - "modelNameHint": "आपके जनरेशन पर मॉडल नाम।", - "enterModelName": "मिलान का परीक्षण करने के लिए एक मॉडल नाम दर्ज करें", - "clickToTest": "परिणाम देखने के लिए \"Test Match\" पर क्लिक करें", - "noMatchFound": "कोई मिलान नहीं मिला", - "noMatchDesc": "\"{modelName}\" से कोई नियम मेल नहीं खाया।", - "troubleshootingTitle": "समस्या निवारण सुझाव:", - "tip1": "अपने मॉडल नाम की वर्तनी जाँचें", - "tip2": "सत्यापित करें कि मिलान करने वाले regex पैटर्न के साथ एक नियम मौजूद है और सक्षम है", - "tip3": "सूची से एक नया मॉडल मूल्य निर्धारण नियम बनाएँ", - "matchFound": "मिलान मिला", - "matchPriority": "मिलान प्राथमिकता", - "defaultPricingTier": "डिफ़ॉल्ट मूल्य निर्धारण स्तर", - "pricePerMTokens": "मूल्य / 1M टोकन", - "noPricingForTier": "इस स्तर के लिए कोई मूल्य निर्धारण परिभाषित नहीं।", - "close": "बंद करें", - "testMatch": "मिलान परीक्षण", - "threshold": "थ्रेशोल्ड", - "sourceBuiltIn": "OpenObserve द्वारा प्रदान किया गया अंतर्निहित मॉडल", - "sourceInherited": "ग्लोबल से विरासत में मिला", - "sourceCustom": "कस्टम मॉडल", - "actionDisable": "अक्षम करें", - "actionEnable": "सक्षम करें", - "actionEdit": "संपादित करें", - "actionDelete": "हटाएँ", - "actionDuplicate": "डुप्लिकेट करें", - "actionClone": "इस संगठन में क्लोन करें", - "tabAll": "सभी", - "tabCustom": "कस्टम", - "tabSystem": "सिस्टम", - "shadowBannerPrefix": "नीचे दिए गए नियम इसके द्वारा छाया में हैं", - "shadowBannerSuffix": "— एक उच्च-प्राथमिकता नियम द्वारा ओवरराइड किए गए और लागत गणना के लिए उपयोग नहीं किए जाएँगे।", - "shadowedTooltip": "\"{name}\" द्वारा छाया में — एक उच्च-प्राथमिकता नियम द्वारा ओवरराइड किया गया और लागत गणना के लिए उपयोग नहीं किया जाएगा", - "shadowedWarningBanner": "नीचे दिए गए नियम \"{name}\" द्वारा छाया में हैं — एक उच्च-प्राथमिकता नियम द्वारा ओवरराइड किए गए और लागत गणना के लिए उपयोग नहीं किए जाएँगे।", - "overflowMore": "और", - "errLoadModels": "मॉडल लोड करने में विफल", - "errUpdate": "अद्यतन करने में विफल", - "errDelete": "हटाने में विफल", - "errDeleteNamed": "\"{name}\" हटाने में विफल", - "errRefresh": "रिफ़्रेश विफल", - "errUnknown": "अज्ञात त्रुटि", - "modelEnabledNotif": "मॉडल \"{name}\" सक्षम किया गया", - "modelDisabledNotif": "मॉडल \"{name}\" अक्षम किया गया", - "confirmDeleteTitle": "मॉडल मूल्य निर्धारण हटाएँ", - "confirmDeleteMessage": "क्या आप वाकई \"{name}\" को हटाना चाहते हैं?", - "modelPricingDeleted": "मॉडल मूल्य निर्धारण हटाया गया", - "builtInRefreshed": "अंतर्निहित मॉडल रिफ़्रेश किए गए", - "noModelsSelected": "एक्सपोर्ट करने के लिए कोई मॉडल चयनित नहीं", - "confirmDeleteSelectedTitle": "चयनित मॉडल हटाएँ", - "confirmDeleteSelectedMessage": "क्या आप वाकई {count} चयनित मॉडल हटाना चाहते हैं?", - "deletedModelsNotif": "{count} मॉडल हटाए गए", - "goBack": "वापस जाएँ", - "modelNamePlaceholder": "उदा. GPT-4o", - "matchPatternPlaceholder": "उदा. gpt-4.*", - "tierNamePlaceholder": "उदा. Default", - "usageKeyPlaceholder": "उदा. input", - "pricePlaceholder": "0.00", - "addUsageKeyPlaceholder": "उपयोग कुंजी (उदा. input)", - "nameRequired": "मॉडल नाम आवश्यक है", - "nameTooLong": "मॉडल नाम 256 वर्ण या उससे कम होना चाहिए", - "patternRequired": "मिलान पैटर्न आवश्यक है", - "patternTooLong": "मिलान पैटर्न 512 वर्ण या उससे कम होना चाहिए", - "invalidRegex": "अमान्य regex: {error}", - "usageKeyPureInteger": "उपयोग कुंजी एक शुद्ध पूर्णांक नहीं हो सकती", - "usageKeyContainsSpaces": "उपयोग कुंजी में स्पेस नहीं होने चाहिए", - "tierPriceMissingKey": "स्तर \"{name}\" में बिना उपयोग कुंजी के एक मूल्य है। एक उपयोग कुंजी जोड़ें (उदा. \"input\") या एक त्वरित सेटअप टेम्पलेट का उपयोग करें।", - "tierUsageKeyPlainNumber": "स्तर \"{name}\": उपयोग कुंजी एक सादा संख्या नहीं हो सकती। \"input\" या \"output\" जैसे लेबल का उपयोग करें।", - "addDefaultPrice": "डिफ़ॉल्ट स्तर में कम से कम एक टोकन मूल्य जोड़ें।", - "saveShadowedWarning": "सहेजा गया, लेकिन यह प्रविष्टि \"{winner}\" द्वारा छाया में है जिसका समान पैटर्न और उच्च प्राथमिकता है। जब तक दूसरी प्रविष्टि हटाई या अक्षम नहीं की जाती, इसका कभी भी लागत गणना के लिए उपयोग नहीं किया जाएगा।", - "modelPricingSaved": "मॉडल मूल्य निर्धारण सहेजा गया", - "errSave": "सहेजने में विफल", - "errLoadModel": "मॉडल लोड करने में विफल", - "tierDefaultName": "डिफ़ॉल्ट", - "tierConditionalName": "सशर्त स्तर" - }, - "aiObservability": { - "title": "AI ऑब्ज़र्वेबिलिटी", - "sections": { - "monitor": "मॉनिटर", - "evaluate": "मूल्यांकन" - }, - "nav": { - "llmInsights": "LLM अंतर्दृष्टि", - "sessions": "LLM सत्र", - "quality": "गुणवत्ता", - "evalJobs": "Eval जॉब", - "scorers": "स्कोरर", - "scoreConfigs": "स्कोर कॉन्फ़िग" - }, - "kpi": { - "totalCost": "कुल लागत", - "totalTokens": "कुल टोकन", - "totalTraces": "कुल ट्रेस", - "p95Latency": "P95 विलंबता", - "errorRate": "त्रुटि दर" - }, - "panels": { - "costTrend": { - "title": "लागत प्रवृत्ति", - "subtitle": "मॉडल के अनुसार USD" - }, - "tokenTrend": { - "title": "टोकन प्रवृत्ति", - "subtitle": "मॉडल के अनुसार टोकन" - }, - "spanTrend": { - "title": "स्पैन प्रवृत्ति", - "subtitle": "प्रकार के अनुसार स्पैन गणना" - }, - "latencyPercentiles": { - "title": "विलंबता p50 / p95 / p99", - "subtitle": "सभी LLM कॉल" - }, - "tracesOverTime": { - "title": "समय के साथ ट्रेस", - "subtitle": "सेवा के अनुसार ट्रेस गणना" - }, - "errorsOverTime": { - "title": "समय के साथ त्रुटियाँ", - "subtitle": "त्रुटि गणना" - }, - "spansByModel": { - "title": "मॉडल के अनुसार स्पैन", - "subtitle": "प्रति मॉडल कॉल गणना" - }, - "tokensByModel": { - "title": "मॉडल के अनुसार टोकन", - "subtitle": "प्रति मॉडल कुल टोकन" - }, - "recentErrors": { - "title": "हाल की त्रुटियाँ", - "subtitle": "अंतिम 10 विफल स्पैन" - } - } - }, - "onlineEvals": { - "title": "मूल्यांकन", - "description": "LLM प्रदाता, स्कोर परिभाषाएँ, स्कोरर, और लाइव मूल्यांकन जॉब कॉन्फ़िगर करें।", - "loading": "ऑनलाइन eval कॉन्फ़िगरेशन लोड हो रहा है...", - "loadError": "ऑनलाइन eval लोड करने में विफल", - "deletePrompt": "{name} हटाएँ?", - "deleteTitle": "{label} हटाएँ", - "deleteConfirmMessage": "क्या आप वाकई \"{name}\" को हटाना चाहते हैं? यह क्रिया पूर्ववत नहीं की जा सकती।", - "deleted": "{label} हटाया गया", - "deleteError": "{label} हटाने में विफल", - "saved": "{label} सहेजा गया", - "newButton": "नया {label}", - "search": "{label} खोजें", - "refresh": "रिफ़्रेश करें", - "allStatuses": "सभी स्थितियाँ", - "noRowsFound": "कोई {label} नहीं मिला", - "getStartedHint": "ऑनलाइन मूल्यांकन वायरिंग शुरू करने के लिए एक बनाएँ।", - "columns": { - "name": "नाम", - "status": "स्थिति", - "updated": "अद्यतन" - }, - "actions": { - "edit": "संपादित करें", - "delete": "हटाएँ", - "export": "एक्सपोर्ट करें", - "activate": "सक्रिय करें", - "pause": "रोकें", - "activated": "जॉब सक्रिय किया गया", - "paused": "जॉब रोका गया", - "activateError": "जॉब सक्रिय करने में विफल", - "pauseError": "जॉब रोकने में विफल" - }, - "tabs": { - "quality": "गुणवत्ता", - "jobs": "Eval जॉब", - "scorers": "स्कोरर", - "scoreConfigs": "स्कोर कॉन्फ़िग", - "providers": "प्रदाता" - }, - "quality": { - "scopeLabel": "इस वर्कस्पेस में सभी गुणवत्ता आयाम", - "timeRange": { - "label": "समय सीमा", - "last1h": "पिछला 1 घंटा", - "last24h": "पिछले 24 घंटे", - "last7d": "पिछले 7 दिन", - "last30d": "पिछले 30 दिन" - }, - "sourceStream": { - "label": "स्रोत स्ट्रीम", - "all": "सभी स्ट्रीम" - }, - "refresh": "रिफ़्रेश करें", - "kpis": { - "evaluated": { - "title": "मूल्यांकित स्पैन", - "unit": "", - "hint": "विंडो के भीतर _llm_scores में विशिष्ट स्पैन ID" - }, - "evaluationCost": { - "title": "मूल्यांकन लागत", - "unit": "$", - "hint": "विंडो में LLM Judge स्कोरर लागत का योग" - }, - "jobSuccess": { - "title": "जॉब सफलता", - "unit": "%", - "hint": "ऑनलाइन Eval जॉब रन सफलता दर" - }, - "scorerFailures": { - "title": "स्कोरर विफलताएँ", - "unit": "", - "hint": "विंडो में विफल स्कोरर आह्वान" - }, - "latencyP95": { - "title": "विलंबता p95", - "unit": "s", - "hint": "स्कोरर-कॉल p95 विलंबता" - }, - "vsPrev": "बनाम पिछला", - "noData": "—" - }, - "loading": "गुणवत्ता डेटा लोड हो रहा है…", - "detail": { - "loading": "प्रति-कॉन्फ़िग विवरण लोड हो रहा है…", - "noData": "इस विंडो में इस कॉन्फ़िग के लिए अभी तक कोई स्कोर नहीं।", - "empty": { - "title": "आपके पहले स्कोर की प्रतीक्षा में", - "description": "चयनित समय सीमा में इस कॉन्फ़िग के लिए कोई स्कोर नहीं आया है। एक बार इसका उपयोग करने वाला स्कोरर चलने पर वे यहाँ स्वचालित रूप से दिखाई देंगे।" - }, - "drillTitle": "ट्रेस तक ड्रिल करें", - "splitByScorer": "स्कोरर के अनुसार विभाजित करें", - "splitBySourceType": "source_type के अनुसार विभाजित करें", - "trendTitle": "प्रवृत्ति", - "trendSubtitle": "{configName}, {bucket}", - "distributionTitle": "स्कोर वितरण", - "compositionTitle": "समय के साथ संरचना", - "categoryDistributionTitle": "श्रेणी वितरण", - "passRateTitle": "समय के साथ पास दर", - "trueFalseTitle": "True बनाम False", - "legendAvg": "औसत", - "legendP95": "p95", - "legendThreshold": "थ्रेशोल्ड {direction} {value}", - "legendHealthy": "स्वस्थ", - "legendUnhealthy": "अस्वस्थ", - "kpis": { - "average": "औसत", - "p50": "P50", - "p95": "P95", - "p50p95": "P50 / P95", - "unhealthy": "अस्वस्थ", - "healthy": "स्वस्थ", - "coverage": "कवरेज" - } - }, - "sidebar": { - "allConfigs": "सभी कॉन्फ़िग", - "empty": "इस फ़िल्टर से कोई कॉन्फ़िग मेल नहीं खाता।" - }, - "overview": { - "title": "स्कोर कॉन्फ़िग अवलोकन", - "countSuffix": "{n} कॉन्फ़िग", - "searchPlaceholder": "कॉन्फ़िग फ़िल्टर करें…", - "loading": "प्रति-कॉन्फ़िग समुच्चय लोड हो रहे हैं…", - "emptyNoConfigsTitle": "अभी तक कोई स्कोर कॉन्फ़िग नहीं", - "emptyNoConfigsHint": "गुणवत्ता आयामों को ट्रैक करना शुरू करने के लिए अपना पहला स्कोर कॉन्फ़िग परिभाषित करें।", - "emptyWaitingTitle": "पहले स्कोर के आने की प्रतीक्षा में", - "emptyWaitingHint": "आपके स्कोर कॉन्फ़िग घोषित किए गए हैं, लेकिन इस विंडो में अभी तक _llm_scores में कोई स्कोर नहीं लिखा गया है।", - "waitingStepJob": "एक ऑनलाइन Eval जॉब सक्रिय करें जो इन कॉन्फ़िग में से किसी एक के लिए स्कोर उत्पन्न करता है", - "waitingStepRange": "समय सीमा बढ़ाएँ — आज पहले या इस सप्ताह के स्कोर इस विंडो में नहीं हो सकते", - "waitingStepRefresh": "Refresh पर क्लिक करें — एक सक्रिय जॉब के स्कोर मूल्यांकन के ~1 मिनट के भीतर दिखाई देते हैं", - "waitingPrimaryCta": "Eval जॉब खोलें", - "waitingRefreshCta": "रिफ़्रेश करें", - "noThreshold": "कोई थ्रेशोल्ड नहीं", - "columns": { - "scoreConfig": "स्कोर कॉन्फ़िग", - "type": "प्रकार", - "totalScores": "कुल स्कोर", - "coverage": "कवरेज", - "unhealthy": "अस्वस्थ", - "trend": "प्रवृत्ति", - "threshold": "स्वस्थ यदि", - "updated": "अद्यतन" - } - } - }, - "singular": { - "jobs": "Eval जॉब", - "scorers": "स्कोरर", - "scoreConfigs": "स्कोर कॉन्फ़िग", - "providers": "प्रदाता" - }, - "secondaryColumn": { - "jobs": "स्ट्रीम", - "scorers": "प्रकार", - "scoreConfigs": "डेटा प्रकार", - "providers": "प्रदाता" - }, - "jobStatus": { - "draft": "ड्राफ़्ट", - "active": "सक्रिय", - "paused": "रोका गया", - "degraded": "निम्नीकृत", - "archived": "संग्रहीत" - }, - "buttons": { - "cancel": "रद्द करें", - "close": "बंद करें", - "create": "बनाएँ", - "remove": "हटाएँ", - "save": "सहेजें", - "saveAsDraft": "ड्राफ़्ट के रूप में सहेजें", - "createAndActivate": "बनाएँ और सक्रिय करें" - }, - "scorerTypeDialog": { - "title": "एक नया स्कोरर बनाएँ", - "intro": "स्कोरर प्रकार चुनें। तीनों प्रथम-श्रेणी विकल्प हैं — जो भी आपकी रचना और चलाने की पसंद के अनुकूल हो उसे चुनें।", - "llmJudgeTitle": "LLM Judge", - "llmJudgeDescription": "अर्थपूर्ण रूप से मूल्यांकन करने के लिए एक भाषा मॉडल का उपयोग करें — आपके द्वारा कॉन्फ़िगर किए गए प्रदाता के माध्यम से।", - "llmJudgeCta": "Judge कॉन्फ़िगर करें", - "remoteTitle": "रिमोट", - "remoteDescription": "अपना स्वयं का HTTP एंडपॉइंट कॉल करें — मूल्यांकन तर्क को अपने एनवायरनमेंट के भीतर रखें।", - "remoteCta": "एंडपॉइंट कॉन्फ़िगर करें", - "codeTitle": "कोड", - "codeDescription": "एक Python या JavaScript स्कोरिंग फ़ंक्शन लिखें और इसे अपने स्थानीय एनवायरनमेंट से पुश करें।", - "codeCta": "भविष्य के रिलीज़ में उपलब्ध", - "comingSoonBadge": "जल्द आ रहा है" - }, - "provider": { - "backTo": "प्रदाताओं पर वापस", - "createTitle": "LLM प्रदाता बनाएँ", - "editTitle": "LLM प्रदाता संपादित करें", - "subtitle": "LLM judge स्कोरर द्वारा उपयोग किए जाने वाले मॉडल एंडपॉइंट को कॉन्फ़िगर करें।", - "sectionTitle": "प्रदाता", - "nameLabel": "नाम", - "namePlaceholder": "Production OpenAI", - "typeLabel": "प्रदाता प्रकार", - "typePlaceholder": "openai", - "endpointLabel": "एंडपॉइंट", - "endpointPlaceholder": "वैकल्पिक कस्टम एंडपॉइंट", - "defaultModelLabel": "डिफ़ॉल्ट मॉडल", - "defaultModelPlaceholder": "gpt-4o-mini", - "availableModelsLabel": "उपलब्ध मॉडल", - "availableModelsPlaceholder": "gpt-4o-mini, gpt-4.1", - "useAsDefault": "डिफ़ॉल्ट प्रदाता के रूप में उपयोग करें", - "authConfigLabel": "Auth कॉन्फ़िग JSON", - "authConfigHelp": "क्रेडेंशियल रेस्ट पर एन्क्रिप्ट किए जाते हैं और सहेजने के बाद वापस पढ़े नहीं जा सकते।", - "apiKeyLabel": "API कुंजी", - "apiKeyPlaceholder": "API कुंजी दर्ज करें", - "apiKeyHelp": "रेस्ट पर एन्क्रिप्टेड संग्रहीत और कभी वापस नहीं पढ़ा जाता। मौजूदा कुंजी रखने के लिए संपादन करते समय खाली छोड़ें।", - "authSection": "प्रमाणीकरण", - "authEditNote": "क्रेडेंशियल वापस नहीं पढ़े जा सकते। यदि आप इसे रोटेट करना चाहते हैं तो ही API कुंजी फिर से दर्ज करें।", - "cannotRename": "निर्माण के बाद नाम नहीं बदला जा सकता।", - "availableModelsHelp": "वैकल्पिक। इस प्रदाता पर उपलब्ध मॉडलों की अल्पविराम से अलग की गई सूची।", - "saveError": "प्रदाता सहेजने में विफल", - "nameRequired": "Provider name is required", - "typeRequired": "Provider type is required", - "defaultModelRequired": "Default model is required", - "apiKeyRequired": "API key is required" - }, - "scoreConfig": { - "booleanValues": "true / false", - "detail": { - "eyebrow": "स्कोर कॉन्फ़िग", - "close": "बंद करें", - "statusActive": "सक्रिय", - "statusInactive": "निष्क्रिय", - "createdShort": "बनाया गया", - "tabs": { - "overview": "अवलोकन", - "versions": "संस्करण", - "usedBy": "द्वारा उपयोग किया गया" - }, - "descriptionSection": "विवरण", - "configurationSection": "कॉन्फ़िगरेशन", - "dataTypeLabel": "डेटा प्रकार", - "rangeLabel": "सीमा", - "categoriesLabel": "श्रेणियाँ", - "valuesLabel": "मान", - "thresholdSection": "स्वस्थ थ्रेशोल्ड", - "thresholdHint": "एक स्कोर को स्वस्थ के रूप में गिनता है", - "noThreshold": "घोषित नहीं", - "noThresholdHint": "कोई थ्रेशोल्ड घोषित नहीं — इस आयाम पर स्कोर गुणवत्ता स्थिति संकेतों में योगदान नहीं करेंगे।", - "usedByIntro": "कोई भी स्कोरर जो इस आयाम नाम के साथ एक मान उत्सर्जित करता है।", - "usedByEmpty": "अभी तक कोई स्कोरर इस कॉन्फ़िग को संदर्भित नहीं करता।", - "scorerTypeLlmJudge": "LLM Judge", - "scorerTypeRemote": "रिमोट", - "versionsIntro": "सीमा, श्रेणियों या स्वस्थ थ्रेशोल्ड में प्रत्येक परिवर्तन एक नया संस्करण बनाता है। ऐतिहासिक स्कोर उस संस्करण से जुड़े रहते हैं जिसने उन्हें उत्पन्न किया।", - "activeVersionChip": "सक्रिय", - "lastUpdated": "अंतिम बार अद्यतन", - "metadataSection": "मेटाडेटा", - "statusLabel": "स्थिति", - "versionLabel": "संस्करण", - "createdLabel": "बनाया गया", - "updatedLabel": "अद्यतन" - }, - "createTitle": "स्कोर कॉन्फ़िग बनाएँ", - "editTitlePrefix": "संपादित करें", - "subtitle": "स्कोरर द्वारा उत्पादित सॉफ़्ट-स्कीमा आयाम।", - "eyebrow": "स्कोर कॉन्फ़िग", - "sectionTitle": "स्कोर कॉन्फ़िग", - "listTitle": "स्कोर कॉन्फ़िग", - "listSubtitle": "स्कोरर द्वारा उत्पादित सॉफ़्ट-स्कीमा आयाम।", - "searchPlaceholder": "कॉन्फ़िग खोजें", - "allTypes": "सभी प्रकार", - "newButton": "नया स्कोर कॉन्फ़िग", - "saveButton": "परिवर्तन सहेजें", - "createButton": "बनाएँ", - "columns": { - "index": "#", - "name": "नाम", - "type": "प्रकार", - "rangeValues": "सीमा / मान", - "healthy": "स्वस्थ", - "activeVersion": "सक्रिय संस्करण", - "usedBy": "द्वारा उपयोग किया गया", - "created": "बनाया गया", - "actions": "क्रियाएँ" - }, - "active": "सक्रिय", - "usedByScorers": "{count} स्कोरर", - "usedByScorer": "{count} स्कोरर", - "noHealthy": "—", - "createInfoNumeric": "परिभाषित करें कि इस आयाम पर स्कोर कब स्वस्थ माने जाते हैं। इस सीमा के बाहर के स्कोर ट्रेस सूचियों, सत्रों और अन्य दृश्यों में गुणवत्ता समस्याएँ ट्रिगर करेंगे।", - "editInfoBannerEmphasis": { - "numeric": "सीमा या स्वस्थ थ्रेशोल्ड को संशोधित करने से {nextVersion} बनता है।", - "categorical": "श्रेणियों या स्वस्थ थ्रेशोल्ड को संशोधित करने से {nextVersion} बनता है।", - "boolean": "स्वस्थ मान को संशोधित करने से {nextVersion} बनता है।" - }, - "editInfoBannerDetail": "ऐतिहासिक स्कोर उस संस्करण से जुड़े रहते हैं जिसने उन्हें उत्पन्न किया। केवल-विवरण संपादन यथास्थान अद्यतन होते हैं।", - "createInfoSubtitle": "केवल-विवरण संपादन {version} को यथास्थान अद्यतन करते हैं।", - "nameLabel": "नाम", - "namePlaceholder": "उदा. \"faithfulness\"", - "nameHelp": "केवल लोअरकेस अक्षर, संख्याएँ, अंडरस्कोर। एक स्थिर पहचानकर्ता के रूप में उपयोग किया जाता है।", - "cannotBeRenamed": "नाम नहीं बदला जा सकता", - "descriptionLabel": "विवरण", - "descriptionPlaceholder": "यह आयाम क्या मापता है?", - "descriptionHelp": "केवल-विवरण संपादन एक नया संस्करण नहीं बनाते।", - "dataTypeLabel": "डेटा प्रकार", - "dataTypeLocked": "लॉक", - "dataTypeCannotChange": "निर्माण के बाद बदला नहीं जा सकता", - "dataTypes": { - "numeric": "संख्यात्मक", - "categorical": "श्रेणीबद्ध", - "boolean": "बूलियन" - }, - "dataTypeHelp": { - "numeric": "एक सीमा में संख्या के रूप में स्कोर", - "categorical": "N लेबल में से एक के रूप में स्कोर", - "boolean": "true / false के रूप में स्कोर" - }, - "numericRangeLabel": "संख्यात्मक सीमा", - "minLabel": "न्यूनतम", - "maxLabel": "अधिकतम", - "categoriesLabel": "श्रेणियाँ", - "addCategoryPlaceholder": "एक श्रेणी जोड़ें", - "addCategoryButton": "जोड़ें", - "booleanInfo": "बूलियन कॉन्फ़िग {trueLabel} / {falseLabel} मान स्वीकार करते हैं। किसी अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता नहीं।", - "healthyThresholdTitle": "स्वस्थ थ्रेशोल्ड", - "optional": "वैकल्पिक", - "healthyThresholdIntro": "परिभाषित करें कि इस आयाम पर स्कोर कब स्वस्थ माने जाते हैं। इस सीमा के बाहर के स्कोर ट्रेस सूचियों, सत्रों और अन्य दृश्यों में गुणवत्ता समस्याएँ ट्रिगर करेंगे।", - "healthyWhenValueIs": "स्वस्थ जब मान है:", - "healthyCategories": "स्वस्थ श्रेणियाँ:", - "healthyCategoriesHint": "स्वस्थ के रूप में गिने जाने वाले सभी मान चेक करें।", - "healthyValue": "स्वस्थ मान:", - "gteLabel": "इससे अधिक या बराबर", - "lteLabel": "इससे कम या बराबर", - "trueIsHealthy": "true स्वस्थ है", - "trueIsHealthyHint": "false के स्कोर गुणवत्ता समस्याएँ ट्रिगर करते हैं।", - "falseIsHealthy": "false स्वस्थ है", - "falseIsHealthyHint": "true के स्कोर गुणवत्ता समस्याएँ ट्रिगर करते हैं।", - "thresholdEmptyHint": "इसे खाली छोड़ने का अर्थ है कि यह आयाम पूरे उत्पाद में गुणवत्ता स्थिति संकेतों में योगदान नहीं करेगा। स्कोर फिर भी दर्ज किए जाएँगे लेकिन समस्या संकेतक ट्रिगर नहीं करेंगे।", - "saveError": "स्कोर कॉन्फ़िग सहेजने में विफल", - "validation": { - "nameRequired": "Name is required", - "nameFormat": "Use lowercase letters, numbers, and underscores only", - "minRequired": "Min is required", - "maxRequired": "Max is required" - }, - "empty": { - "title": "अभी तक कोई स्कोर कॉन्फ़िग नहीं", - "description": "स्कोर कॉन्फ़िग उन आयामों को परिभाषित करते हैं जो आपके स्कोरर उत्पन्न करते हैं — नाम, डेटा प्रकार, मान सीमा, और स्वस्थ थ्रेशोल्ड। ऑनलाइन मूल्यांकन वायरिंग शुरू करने के लिए एक बनाएँ।", - "chipTypes": "संख्यात्मक, श्रेणीबद्ध, बूलियन", - "chipThreshold": "स्वस्थ थ्रेशोल्ड" - }, - "import": { - "title": "स्कोर कॉन्फ़िग इम्पोर्ट करें", - "button": "इम्पोर्ट करें", - "customLabel": "कस्टम", - "customSubtitle": "JSON फ़ाइल या URL से इम्पोर्ट करें", - "libraryLabel": "लाइब्रेरी", - "librarySubtitle": "क्यूरेटेड कैटलॉग से ब्राउज़ और इम्पोर्ट करें", - "libraryDrawerTitle": "स्कोर कॉन्फ़िग लाइब्रेरी", - "outputMessages": "आउटपुट संदेश", - "creation": "स्कोर कॉन्फ़िग निर्माण", - "errors": { - "title": "सत्यापन त्रुटियाँ" - } - }, - "export": { - "bulkButton": "एक्सपोर्ट करें" - } - }, - "scorer": { - "detail": { - "close": "बंद करें", - "eyebrow": "स्कोरर", - "refresh": "रिफ़्रेश करें", - "descriptionSection": "विवरण", - "configurationSection": "कॉन्फ़िगरेशन", - "scorerTypeLabel": "स्कोरर प्रकार", - "providerLabel": "प्रदाता", - "providerUnknown": "अज्ञात", - "modelLabel": "मॉडल", - "endpointLabel": "एंडपॉइंट", - "producesSection": "स्कोर कॉन्फ़िग उत्पन्न करता है", - "producesEmpty": "यह स्कोरर किसी स्कोर कॉन्फ़िग में नहीं लिखता।", - "promptSection": "Judge प्रॉम्प्ट", - "requestTemplateSection": "अनुरोध टेम्पलेट", - "variablesSuffix": "वेरिएबल", - "outputSchemaSection": "आउटपुट स्कीमा", - "usedBySection": "द्वारा उपयोग किया गया", - "usedByIntro": "जॉब जो अपनी पाइपलाइन में इस स्कोरर को संदर्भित करते हैं।", - "usedByEmpty": "अभी तक कोई जॉब इस स्कोरर को संदर्भित नहीं करता।", - "versionsIntro": "संस्करण स्कोरर कॉन्फ़िगरेशन के अपरिवर्तनीय स्नैपशॉट हैं। सक्रिय संस्करण वह है जो जॉब आज चलाते हैं।", - "activeVersionChip": "सक्रिय", - "lastUpdated": "अंतिम बार अद्यतन", - "metadataSection": "मेटाडेटा", - "versionLabel": "संस्करण", - "createdLabel": "बनाया गया", - "updatedLabel": "अद्यतन", - "typeLlmJudge": "LLM Judge", - "typeRemote": "रिमोट", - "tabs": { - "configuration": "कॉन्फ़िगरेशन", - "versions": "संस्करण", - "runs": "रन", - "usedBy": "द्वारा उपयोग किया गया" - }, - "kpis": { - "totalRuns": "कुल रन (24घं)", - "totalRunsSub": "सभी संदर्भित जॉब में", - "successRate": "सफलता दर", - "successRateSub": "पिछले 24घं", - "avgLatency": "औसत विलंबता", - "avgLatencySub": "रन में p50", - "usedBy": "द्वारा उपयोग किया गया", - "usedBySubSingular": "जॉब", - "usedBySubPlural": "जॉब" - }, - "runs": { - "showingPrefix": "दिखाया जा रहा है", - "showingOf": "में से", - "showingSuffix": "रन", - "empty": "इस विंडो में कोई स्कोरर रन नहीं।", - "spanLabel": "स्पैन", - "traceLabel": "ट्रेस", - "jobUnknown": "—", - "col": { - "time": "समय", - "job": "जॉब", - "target": "लक्ष्य", - "score": "स्कोर", - "latency": "विलंबता", - "status": "स्थिति" - } - } - }, - "listTitle": "स्कोरर", - "listSubtitle": "स्कोरर आपके ट्रेस के विरुद्ध चलते हैं और परिभाषित आयामों पर स्कोर उत्पन्न करते हैं।", - "searchPlaceholder": "स्कोरर खोजें", - "allTypes": "सभी प्रकार", - "newButton": "नया स्कोरर", - "usedByJobs": "{count} जॉब", - "usedByJob": "{count} जॉब", - "columns": { - "name": "नाम", - "type": "प्रकार", - "produces": "उत्पन्न करता है", - "version": "संस्करण", - "usedBy": "द्वारा उपयोग किया गया", - "lastRun": "अंतिम रन", - "successRate": "सफलता दर (24घं)", - "actions": "क्रियाएँ" - }, - "empty": { - "title": "अभी तक कोई स्कोरर नहीं", - "description": "स्कोरर मूल्यांकन की निष्पादन इकाइयाँ हैं। वे आपके उत्पादन ट्रेस से स्पैन लेते हैं और उन गुणवत्ता आयामों के साथ स्कोर उत्पन्न करते हैं जिनकी आप परवाह करते हैं।", - "chipLlmJudge": "LLM Judge", - "chipRemote": "रिमोट", - "chipCode": "कोड" - }, - "noProviders": { - "title": "पहले एक प्रदाता जोड़ें", - "description": "स्कोरर को चलाने के लिए एक LLM प्रदाता (OpenAI, Anthropic, आदि) की आवश्यकता होती है। स्कोरर बनाने से पहले Settings में एक प्रदाता जोड़ें।", - "chipRequired": "LLM Judge के लिए आवश्यक", - "cta": "प्रदाता जोड़ें" - }, - "import": { - "title": "स्कोरर इम्पोर्ट करें", - "button": "इम्पोर्ट करें", - "customLabel": "कस्टम", - "customSubtitle": "JSON फ़ाइल या URL से इम्पोर्ट करें", - "libraryLabel": "लाइब्रेरी", - "librarySubtitle": "क्यूरेटेड कैटलॉग से ब्राउज़ और इम्पोर्ट करें", - "libraryDrawerTitle": "स्कोरर लाइब्रेरी", - "outputMessages": "आउटपुट संदेश", - "creation": "स्कोरर निर्माण", - "errors": { - "title": "सत्यापन त्रुटियाँ" - } - }, - "export": { - "bulkButton": "एक्सपोर्ट करें" - }, - "backTo": "स्कोरर पर वापस", - "badgeRemote": "रिमोट", - "badgeLlm": "LLM Judge", - "createTitleRemote": "रिमोट स्कोरर बनाएँ", - "createTitleLlm": "LLM Judge स्कोरर बनाएँ", - "editTitleRemote": "रिमोट स्कोरर संपादित करें", - "editTitleLlm": "LLM Judge स्कोरर संपादित करें", - "subtitleRemote": "आपके द्वारा होस्ट किए गए एक HTTP एंडपॉइंट को कॉल करें। हम अनुरोध रेंडर करते हैं, आप एक स्कोर लौटाते हैं।", - "subtitleLlm": "एक भाषा मॉडल आपके द्वारा प्रदान किए गए प्रॉम्प्ट का उपयोग करके प्रत्येक ट्रेस का आँकलन करता है।", - "descriptionPlaceholder": "यह स्कोरर क्या मापता है इसका एक संक्षिप्त सारांश।", - "producesScoreHelp": "यह स्कोरर किस आयाम को मापता है?", - "providerHelp": "वह LLM प्रदाता चुनें जिसे यह judge कॉल करता है। {settingsLink} में प्रदाता प्रबंधित करें।", - "providerHelpSettingsLink": "Settings", - "refreshProviders": "प्रदाता रिफ़्रेश करें", - "selectedPrefix": "चयनित:", - "endpointLabel": "एंडपॉइंट:", - "defaultModelPreviewLabel": "डिफ़ॉल्ट मॉडल:", - "authLabel": "Auth:", - "authConfigured": "कॉन्फ़िगर किया गया", - "authNotConfigured": "कॉन्फ़िगर नहीं किया गया", - "rangeLabel": "सीमा:", - "healthyLabel": "स्वस्थ:", - "typeLabel": "प्रकार:", - "promptVariablesLabel": "वेरिएबल:", - "promptHelp": "मूल्यांकन तर्क पर ध्यान दें। प्लेसहोल्डर के रूप में {inputVar} और {outputVar} का उपयोग करें।", - "identitySection": "पहचान", - "judgeSection": "Judge कॉन्फ़िगरेशन", - "endpointSection": "एंडपॉइंट", - "nameLabel": "नाम", - "namePlaceholder": "faithfulness_judge", - "producesScoreConfigLabel": "स्कोर कॉन्फ़िग", - "producesScoreConfigNone": "स्कोर कॉन्फ़िग चुनें", - "scoreConfigVersionLabel": "स्कोर कॉन्फ़िग संस्करण", - "latestSuffix": " (नवीनतम)", - "pinVersion": "चयनित संस्करण पिन करें", - "descriptionLabel": "विवरण", - "providerLabel": "प्रदाता", - "providerPlaceholder": "प्रदाता चुनें", - "modelLabel": "मॉडल", - "modelPlaceholder": "gpt-4o", - "promptLabel": "Judge प्रॉम्प्ट", - "includeReasoningLabel": "तर्क शामिल करें", - "includeReasoningHint": "LLM अपने स्कोर की व्याख्या करता है। score.metadata.reasoning में संग्रहीत।", - "extraFieldsLabel": "अतिरिक्त मेटाडेटा फ़ील्ड", - "extraFieldsOptional": "वैकल्पिक", - "extraFieldsHint": "ऐसे फ़ील्ड जोड़ें जिन्हें LLM को स्कोर के साथ आउटपुट करना चाहिए। बाद के विश्लेषण के लिए score.metadata में संग्रहीत।", - "extraFields": { - "colName": "फ़ील्ड नाम", - "colType": "प्रकार", - "colDescription": "विवरण", - "namePlaceholder": "field_name", - "descriptionPlaceholder": "LLM को इस फ़ील्ड में क्या रखना चाहिए?", - "addButton": "+ फ़ील्ड जोड़ें", - "previewSchema": "जनरेट की गई स्कीमा देखें", - "schemaTitle": "जनरेट की गई JSON स्कीमा", - "schemaLoading": "स्कीमा प्राप्त की जा रही है…", - "schemaCopy": "कॉपी करें", - "schemaCopied": "कॉपी किया गया", - "schemaCopyFailed": "स्कीमा को क्लिपबोर्ड पर कॉपी करने में विफल।", - "typeString": "string", - "typeNumber": "number", - "typeBoolean": "boolean" - }, - "authSection": "प्रमाणीकरण", - "headersSection": "कस्टम हेडर", - "requestBodySection": "अनुरोध बॉडी", - "remoteEndpointLabel": "रिमोट एंडपॉइंट", - "remoteUrlLabel": "URL", - "remoteEndpointPlaceholder": "https://eval.internal.corp/check", - "remoteTimeoutLabel": "टाइमआउट (ms)", - "remoteRetriesLabel": "अधिकतम पुनः प्रयास", - "remoteBackoffLabel": "बैकऑफ़", - "remoteBackoff": { - "exponential": "एक्सपोनेंशियल", - "linear": "रैखिक", - "fixed": "स्थिर" - }, - "remoteAuthLabel": "Auth प्रकार", - "remoteAuth": { - "placeholder": "Auth प्रकार चुनें", - "bearer": "Bearer टोकन", - "basic": "Basic Auth", - "apiKey": "API कुंजी", - "tokenLabel": "टोकन", - "usernameLabel": "उपयोगकर्ता नाम", - "passwordLabel": "पासवर्ड", - "headerNameLabel": "हेडर नाम", - "bearerTokenPlaceholder": "bearer टोकन पेस्ट करें", - "basicUsernamePlaceholder": "user", - "basicPasswordPlaceholder": "••••••••", - "apiKeyHeaderPlaceholder": "X-API-Key", - "apiKeyTokenPlaceholder": "API कुंजी पेस्ट करें", - "encryptedHint": "रेस्ट पर एन्क्रिप्टेड। सहेजने के बाद देखा नहीं जा सकता।" - }, - "remoteHeaders": { - "subtitle": "प्रत्येक अनुरोध के साथ भेजा जाता है।", - "colName": "नाम", - "colValue": "मान", - "colKey": "नाम", - "keyPlaceholder": "X-Custom-Header", - "valuePlaceholder": "मान", - "addButton": "+ हेडर जोड़ें" - }, - "requestBodyLabel": "अनुरोध बॉडी टेम्पलेट", - "saveError": "स्कोरर सहेजने में विफल", - "validation": { - "nameRequired": "Scorer name is required", - "scoreConfigRequired": "A score config is required", - "providerRequired": "A provider is required", - "endpointRequired": "An endpoint URL is required", - "bearerTokenRequired": "Token is required", - "basicUsernameRequired": "Username is required", - "basicPasswordRequired": "Password is required", - "apiKeyHeaderRequired": "Header name is required", - "apiKeyTokenRequired": "Token is required", - "timeoutInvalid": "Timeout must be 0 or greater", - "retriesInvalid": "Retries must be 0 or greater", - "duplicateFieldName": "Field names must be unique" - }, - "versionsLoadError": "स्कोर कॉन्फ़िग संस्करण लोड करने में विफल", - "testPanel": { - "title": "इस स्कोरर का परीक्षण करें", - "hint": "सहेजने से पहले नमूना डेटा के साथ अपने स्कोरर को आज़माएँ। परीक्षण रन सहेजे नहीं जाते।", - "emptyPrefix": "नमूना फ़ील्ड के साथ परीक्षण करने के लिए स्कोरर टेम्पलेट में ", - "emptySuffix": " जैसे वेरिएबल जोड़ें।", - "runButton": "परीक्षण चलाएँ", - "disabledHint": "परीक्षण चलाने के लिए नाम, प्रदाता, टेम्पलेट, और प्रत्येक वेरिएबल मान भरें।", - "stateIdle": "परिणाम यहाँ देखने के लिए एक परीक्षण चलाएँ।", - "stateRunning": "स्कोरर परीक्षण चल रहा है...", - "successHeader": "सफलता", - "errorHeader": "परीक्षण विफल", - "errorFallback": "स्कोरर परीक्षण विफल। विवरण के लिए सर्वर लॉग जाँचें।", - "resultScore": "स्कोर", - "resultLatency": "विलंबता", - "resultModel": "मॉडल", - "resultTokens": "टोकन", - "resultReasoning": "तर्क", - "resultRaw": "कच्ची प्रतिक्रिया", - "valuePlaceholder": "{variable} के लिए मान" - } - }, - "job": { - "detail": { - "close": "बंद करें", - "eyebrow": "Eval जॉब", - "refresh": "रिफ़्रेश करें", - "descriptionSection": "विवरण", - "targetSection": "लक्ष्य", - "streamLabel": "स्ट्रीम", - "streamTypeLabel": "स्ट्रीम प्रकार", - "filterLabel": "फ़िल्टर", - "filterEmpty": "कोई फ़िल्टर नहीं — हर स्पैन का मूल्यांकन किया जाता है", - "scorersSection": "स्कोरर", - "scorersEmpty": "इस जॉब से अभी तक कोई स्कोरर संलग्न नहीं।", - "scorerUnknown": "(हटाया गया स्कोरर)", - "scorerTypeLlmJudge": "LLM Judge", - "scorerTypeRemote": "रिमोट", - "producesPrefix": "उत्पन्न करता है", - "viewScorerHint": "देखें", - "inputMappingSection": "इनपुट मैपिंग", - "samplingSection": "सैंपलिंग", - "samplingModeLabel": "मोड", - "samplingValueLabel": "मान", - "samplingAll": "हर मिलान का मूल्यांकन करें", - "samplingRate": "दर के अनुसार रैंडम सैंपल", - "samplingCount": "पहले N मिलान", - "metadataSection": "मेटाडेटा", - "versionLabel": "संस्करण", - "pipelineLabel": "Pipeline ID", - "createdLabel": "बनाया गया", - "updatedLabel": "अद्यतन", - "tabs": { - "configuration": "कॉन्फ़िगरेशन", - "runs": "रन", - "failures": "विफलताएँ" - }, - "kpis": { - "totalRuns": "कुल रन", - "totalRunsSub": "चयनित विंडो के भीतर", - "successRate": "सफलता दर", - "successRateSub": "सभी स्कोरर में", - "avgLatency": "औसत विलंबता", - "avgLatencySub": "रन में औसत", - "scorers": "स्कोरर", - "scorersSubSingular": "स्कोरर संलग्न", - "scorersSubPlural": "स्कोरर संलग्न" - }, - "runs": { - "showingPrefix": "दिखाया जा रहा है", - "showingOf": "में से", - "showingSuffix": "मिलान किए गए रन", - "empty": "चयनित विंडो में इस जॉब के लिए कोई रन दर्ज नहीं।", - "spanLabel": "स्पैन", - "traceLabel": "ट्रेस", - "scorerUnknown": "(अज्ञात स्कोरर)", - "col": { - "time": "समय", - "scorer": "स्कोरर", - "target": "लक्ष्य", - "score": "स्कोर", - "latency": "विलंबता", - "status": "स्थिति" - } - }, - "failures": { - "byScorerTitle": "स्कोरर के अनुसार विफलताएँ", - "byScorerEmpty": "चयनित विंडो में कोई विफलता दर्ज नहीं।", - "recentTitle": "हाल की विफलताएँ", - "recentEmpty": "चयनित विंडो में कोई विफल रन नहीं।", - "col": { - "scorer": "स्कोरर", - "failureRate": "विफलता दर", - "count": "विफलताएँ / कुल" - } - } - }, - "listTitle": "Eval जॉब", - "listSubtitle": "अपनी उत्पादन ट्रेस स्ट्रीम पर स्कोरर तैनात करें।", - "searchPlaceholder": "जॉब खोजें", - "allStatuses": "सभी स्थितियाँ", - "newButton": "नया जॉब", - "scorersCount": "{count} स्कोरर", - "scorerCount": "{count} स्कोरर", - "columns": { - "name": "नाम", - "status": "स्थिति", - "stream": "स्ट्रीम", - "scorers": "स्कोरर", - "successRate": "सफलता दर", - "lastRun": "अंतिम रन", - "created": "बनाया गया", - "actions": "क्रियाएँ" - }, - "empty": { - "title": "अभी तक कोई Eval जॉब नहीं", - "description": "Eval जॉब आपकी उत्पादन ट्रेस स्ट्रीम के विरुद्ध स्कोरर तैनात करते हैं। वे मिलान करने वाले स्पैन सैंपल करते हैं, स्कोरर को अतुल्यकालिक रूप से चलाते हैं, और विश्लेषण के लिए परिणामी स्कोर संग्रहीत करते हैं।", - "chipStreams": "उत्पादन स्ट्रीम", - "chipScorers": "कई स्कोरर", - "chipSampling": "सैंपलिंग नियंत्रण" - }, - "descriptionPlaceholder": "यह जॉब क्या मॉनिटर करता है?", - "samplingValueHelp": "JSON: rate 0-1 के बीच एक संख्या है, count एक धनात्मक पूर्णांक है।", - "samplingValueAllHelp": "जब मोड All हो तो लागू नहीं — हर मिलान किए गए ईवेंट का मूल्यांकन किया जाएगा।", - "samplingHelp": "Filter के बाद लागू करें। लागत नियंत्रित करता है — केवल मिलान किए गए स्पैन दर की ओर गिने जाते हैं।", - "presets": { - "label": "त्वरित प्रीसेट", - "rootSpans": "केवल रूट स्पैन", - "llmCalls": "LLM कॉल", - "toolCalls": "टूल कॉल" - }, - "backTo": "Eval जॉब पर वापस", - "createTitle": "ऑनलाइन Eval जॉब बनाएँ", - "editTitle": "ऑनलाइन Eval जॉब संपादित करें", - "stepper": { - "target": "लक्ष्य", - "scorers": "स्कोरर", - "mapping": "मैपिंग", - "sampling": "सैंपलिंग" - }, - "targetSection": "लक्ष्य", - "scorersSection": "स्कोरर और मैपिंग", - "nameLabel": "नाम", - "namePlaceholder": "Production Faithfulness Monitor", - "streamLabel": "इनपुट स्ट्रीम", - "streamPlaceholder": "स्ट्रीम नाम चुनें", - "streamTypeLabel": "स्ट्रीम प्रकार", - "streamTypePlaceholder": "traces", - "descriptionLabel": "विवरण", - "samplingModeLabel": "सैंपलिंग मोड", - "samplingValueLabel": "सैंपलिंग मान JSON", - "samplingModes": { - "rate": "दर", - "all": "सभी", - "count": "गणना" - }, - "scorerPicker": { - "title": "स्कोरर", - "hint": "प्रत्येक मिलान किए गए स्पैन के लिए चलाने हेतु एक या अधिक स्कोरर चुनें।", - "meta": "{type} · v{version}", - "placeholder": "स्कोरर चुनें", - "searchPlaceholder": "स्कोरर खोजें…", - "empty": "कोई स्कोरर उपलब्ध नहीं। पहले Scorers टैब में एक बनाएँ।" - }, - "filter": { - "title": "फ़िल्टर शर्त", - "hint": "केवल इस शर्त से मेल खाने वाले स्पैन सैंपलिंग और स्कोरिंग में प्रवेश करते हैं।" - }, - "inputMapping": { - "title": "इनपुट मैपिंग", - "hint": "स्पैन फ़ील्ड को प्रत्येक स्कोरर टेम्पलेट वेरिएबल में मैप करें।", - "selectScorers": "उनकी मैपिंग कॉन्फ़िगर करने के लिए स्कोरर चुनें।", - "noVariables": "इस स्कोरर में मैप करने के लिए कोई टेम्पलेट वेरिएबल नहीं।", - "variableCount": "{count} वेरिएबल" - }, - "preview": { - "title": "मिलान किए गए स्पैन", - "hint": "एक बार जब आप एक स्ट्रीम और फ़िल्टर चुन लेते हैं, तो यह पैनल दिखाएगा कि आपका जॉब कितने स्पैन से मेल खाएगा।", - "summaryTitle": "सारांश", - "summaryName": "नाम", - "summaryType": "प्रकार", - "summaryStatus": "स्थिति", - "statusEditing": "संपादन", - "statusDraft": "ड्राफ़्ट", - "emptyValue": "—" - }, - "selectAtLeastOne": "कम से कम एक स्कोरर चुनें", - "saveError": "Eval जॉब सहेजने में विफल", - "createdAndActivated": "Eval जॉब बनाया और सक्रिय किया गया", - "createdButActivateFailed": "Eval जॉब बनाया गया, लेकिन सक्रियण विफल रहा", - "validation": { - "nameRequired": "Job name is required", - "streamRequired": "A stream is required", - "samplingValueRequired": "A sampling value is required" - } - } - }, - "llmProviders": { - "tabLabel": "LLM प्रदाता", - "title": "LLM प्रदाता", - "subtitle": "LLM Judge स्कोरर द्वारा उपयोग किए जाने वाले LLM प्रदाता कनेक्शन प्रबंधित करें।", - "newButton": "नया प्रदाता", - "searchPlaceholder": "प्रदाता खोजें", - "defaultBadge": "डिफ़ॉल्ट", - "loadError": "LLM प्रदाता लोड करने में विफल", - "columns": { - "name": "नाम", - "type": "प्रकार", - "endpoint": "एंडपॉइंट", - "defaultModel": "डिफ़ॉल्ट मॉडल", - "default": "डिफ़ॉल्ट" - }, - "empty": { - "title": "अभी तक कोई LLM प्रदाता नहीं", - "description": "LLM प्रदाता उन भाषा मॉडलों के लिए कनेक्शन विवरण (एंडपॉइंट + क्रेडेंशियल) संग्रहीत करते हैं जिन्हें आपके LLM Judge स्कोरर कॉल करते हैं। judge-आधारित मूल्यांकन चलाना शुरू करने के लिए एक जोड़ें।" - } - }, - "logs": { - "noData": { - "title": "OpenObserve पर डेटा भेजना शुरू करें", - "description": "इस संगठन में अभी तक कोई डेटा नहीं है, इसलिए एक्सप्लोर करने के लिए कोई स्ट्रीम नहीं है। अपने पहले लॉग भेजें और वे यहाँ स्वचालित रूप से दिखाई देंगे — चुनें कि आप कैसे शुरू करना चाहते हैं।", - "curl": "Curl / HTTP API के माध्यम से भेजें", - "curlDesc": "सबसे तेज़ तरीका — एक कमांड पेस्ट करें और लॉग आना शुरू हो जाते हैं", - "shippers": "एक लॉग शिपर का उपयोग करें", - "shippersDesc": "Filebeat, Fluentbit, Fluentd, Vector, SyslogNg और अधिक", - "otel": "OpenTelemetry", - "otelDesc": "लॉग, ट्रेस और मेट्रिक्स के लिए वेंडर-तटस्थ OTLP इन्जेशन", - "or": "या:", - "kubernetes": "Kubernetes", - "aws": "AWS / CloudWatch", - "linux": "Linux", - "windows": "Windows", - "askAi": "इन्जेशन सेट करने के लिए AI से पूछें" - }, - "noStream": { - "title": "एक्सप्लोर करना शुरू करने के लिए एक स्ट्रीम चुनें", - "description": "एक स्ट्रीम चुनें, फिर Run query दबाएँ। परिणाम आने के बाद आप फ़िल्टर, एक VRL फ़ंक्शन, और एक कस्टम समय सीमा के साथ परिष्कृत कर सकते हैं।", - "selectStream": "एक स्ट्रीम चुनें", - "selectStreamDesc": "logs, traces, metrics और RUM स्ट्रीम ब्राउज़ करें", - "queryGuide": "क्वेरी मार्गदर्शिका पढ़ें", - "queryGuideDesc": "फ़िल्टर, SQL मोड, VRL और सहेजे गए व्यू", - "recent": "हाल का:" - }, - "noEvents": { - "title": "कोई ईवेंट नहीं मिला", - "descNoFilters": "{range} में कोई ईवेंट नहीं मिला। परिणाम लोड करने के लिए समय सीमा बढ़ाने का प्रयास करें।", - "descWithFilters": "चयनित विंडो में इस क्वेरी से कुछ भी मेल नहीं खाया। स्ट्रीम में यहाँ डेटा है — क्वेरी बार में एक फ़िल्टर को ढीला करने का प्रयास करें।", - "descOutOfRange": "आपकी समय विंडो में इस स्ट्रीम का कोई डेटा नहीं है। डेटा आखिरी बार कब देखा गया था, वहाँ जाएँ।", - "jumpToData": "नवीनतम डेटा पर जाएँ", - "expandRange": "समय सीमा विस्तृत करें", - "expandRangeDescAbsolute": "एक व्यापक सापेक्ष समय सीमा पर स्विच करें", - "openHistory": "खोज इतिहास खोलें", - "askAi": "मेरी क्वेरी ठीक करने के लिए AI से पूछें", - "selectedRange": "चयनित सीमा", - "descDataAtBoundary": "इस विंडो में स्ट्रीम में डेटा है लेकिन कोई इवेंट मेल नहीं खाया। अपना खोज इतिहास जांचें या मदद के लिए AI से पूछें।" - }, - "error": { - "sqlError": "SQL सिंटैक्स त्रुटि", - "sqlErrorDesc": "आपकी क्वेरी में एक सिंटैक्स त्रुटि है। हाइलाइट की गई त्रुटियों के लिए क्वेरी एडिटर की समीक्षा करें।", - "streamNotFound": "स्ट्रीम नहीं मिली", - "streamNotFoundDesc": "चयनित स्ट्रीम मौजूद नहीं है या हटा दी गई थी।", - "ftsNotConfigured": "पूर्ण-पाठ खोज कॉन्फ़िगर नहीं की गई", - "ftsNotConfiguredDesc": "इस स्ट्रीम में कोई पूर्ण-पाठ खोज फ़ील्ड नहीं है। कीवर्ड खोज सक्षम करने के लिए एक कॉन्फ़िगर करें।", - "fieldNotFound": "फ़ील्ड नहीं मिला", - "fieldNotFoundDesc": "आपकी क्वेरी एक या अधिक फ़ील्ड को संदर्भित करती है जो इस स्ट्रीम में मौजूद नहीं हैं।", - "functionNotDefined": "फ़ंक्शन परिभाषित नहीं", - "functionNotDefinedDesc": "आपकी क्वेरी एक VRL फ़ंक्शन को कॉल करती है जो परिभाषित नहीं है।", - "dataUnavailable": "डेटा फ़ाइलें अनुपलब्ध", - "dataUnavailableDesc": "इस समय सीमा के लिए कुछ डेटा फ़ाइलें दुर्गम हैं। एक भिन्न समय विंडो आज़माएँ।", - "dataTypeMismatch": "डेटा प्रकार बेमेल", - "dataTypeMismatchDesc": "आपकी क्वेरी में एक फ़ील्ड एक असंगत डेटा प्रकार के साथ उपयोग किया गया है।", - "executionError": "क्वेरी निष्पादन विफल", - "executionErrorDesc": "आपकी क्वेरी निष्पादित करते समय एक त्रुटि हुई।", - "serverError": "सर्वर त्रुटि", - "serverErrorDesc": "सर्वर पर एक आंतरिक त्रुटि हुई।", - "generic": "खोज त्रुटि", - "genericDesc": "खोज ईवेंट प्राप्त करते समय एक त्रुटि हुई।", - "configureStream": "स्ट्रीम कॉन्फ़िगर करें", - "configureStreamDesc": "स्ट्रीम सेटिंग्स में एक पूर्ण-पाठ खोज फ़ील्ड जोड़ें", - "fixQuery": "क्वेरी ठीक करें", - "fixQueryDesc": "एडिटर में क्वेरी की समीक्षा करें और सही करें", - "expandRange": "एक भिन्न समय सीमा आज़माएँ", - "expandRangeDesc": "सुलभ डेटा एक भिन्न समय विंडो में हो सकता है", - "copyError": "त्रुटि विवरण कॉपी करें", - "traceId": "Trace ID:", - "askAi": "मेरी क्वेरी ठीक करने के लिए AI से पूछें", - "showDetail": "विवरण दिखाएँ", - "hideDetail": "विवरण छिपाएँ" - } - }, - "queryError": { - "sqlError": "SQL सिंटैक्स त्रुटि", - "sqlErrorDesc": "आपकी क्वेरी में एक सिंटैक्स त्रुटि है। हाइलाइट की गई त्रुटियों के लिए एडिटर की समीक्षा करें।", - "streamNotFound": "स्ट्रीम नहीं मिली", - "streamNotFoundDesc": "चयनित स्ट्रीम मौजूद नहीं है या हटा दी गई थी।", - "ftsNotConfigured": "पूर्ण-पाठ खोज कॉन्फ़िगर नहीं की गई", - "ftsNotConfiguredDesc": "इस स्ट्रीम में कोई पूर्ण-पाठ खोज फ़ील्ड नहीं है। कीवर्ड खोज सक्षम करने के लिए एक कॉन्फ़िगर करें।", - "fieldNotFound": "फ़ील्ड नहीं मिला", - "fieldNotFoundDesc": "आपकी क्वेरी एक या अधिक फ़ील्ड को संदर्भित करती है जो इस स्ट्रीम में मौजूद नहीं हैं।", - "functionNotDefined": "फ़ंक्शन परिभाषित नहीं", - "functionNotDefinedDesc": "आपकी क्वेरी एक VRL फ़ंक्शन को कॉल करती है जो परिभाषित नहीं है।", - "dataUnavailable": "डेटा फ़ाइलें अनुपलब्ध", - "dataUnavailableDesc": "इस समय सीमा के लिए कुछ डेटा फ़ाइलें दुर्गम हैं। एक भिन्न समय विंडो आज़माएँ।", - "dataTypeMismatch": "डेटा प्रकार बेमेल", - "dataTypeMismatchDesc": "आपकी क्वेरी में एक फ़ील्ड एक असंगत डेटा प्रकार के साथ उपयोग किया गया है।", - "executionError": "क्वेरी निष्पादन विफल", - "executionErrorDesc": "आपकी क्वेरी निष्पादित करते समय एक त्रुटि हुई।", - "serverError": "सर्वर त्रुटि", - "serverErrorDesc": "सर्वर पर एक आंतरिक त्रुटि हुई।", - "generic": "क्वेरी त्रुटि", - "genericDesc": "आपकी क्वेरी संसाधित करते समय एक त्रुटि हुई।", - "configureResource": "स्ट्रीम कॉन्फ़िगर करें", - "configureResourceDesc": "स्ट्रीम सेटिंग्स में एक पूर्ण-पाठ खोज फ़ील्ड जोड़ें", - "fixQuery": "क्वेरी ठीक करें", - "fixQueryDesc": "एडिटर में क्वेरी की समीक्षा करें और सही करें", - "expandRange": "एक भिन्न समय सीमा आज़माएँ", - "expandRangeDesc": "सुलभ डेटा एक भिन्न समय विंडो में हो सकता है", - "copyError": "त्रुटि विवरण कॉपी करें", - "copied": "कॉपी किया गया!", - "traceId": "Trace ID:", - "askAi": "मेरी क्वेरी ठीक करने के लिए AI से पूछें", - "showDetail": "विवरण दिखाएँ", - "hideDetail": "विवरण छिपाएँ" - }, - "refreshButton": { - "justNow": "अभी-अभी", - "secondsAgo": "{sec}से पहले", - "minutesAgo": "{min}मि पहले", - "hoursAgo": "{h}घं पहले", - "notYetRefreshed": "अभी तक रिफ़्रेश नहीं किया गया", - "dataFresh": "डेटा ताज़ा है", - "dataGettingStale": "डेटा पुराना हो रहा है", - "dataStale": "डेटा पुराना है", - "lastRefreshed": "अंतिम बार रिफ़्रेश: {time}" - } -} diff --git a/web/src/locales/numberFormat.ts b/web/src/locales/numberFormat.ts index 061cdf7f63..06b9d9dff5 100644 --- a/web/src/locales/numberFormat.ts +++ b/web/src/locales/numberFormat.ts @@ -16,7 +16,7 @@ import { getLanguage } from "@/utils/cookies"; // App language codes are not all valid BCP-47, so map them for Intl.NumberFormat. -const APP_LOCALE_TO_BCP47: Record = { +export const APP_LOCALE_TO_BCP47: Record = { "en-gb": "en-GB", "tr-turk": "tr-TR", "zh-cn": "zh-CN", diff --git a/web/src/main.ts b/web/src/main.ts index 055f1fbaa2..5f64d8a7f0 100644 --- a/web/src/main.ts +++ b/web/src/main.ts @@ -17,7 +17,7 @@ import { createApp } from "vue"; import store from "./stores"; import App from "./App.vue"; import createRouter from "./router"; -import i18n from "./locales"; +import i18n, { getLocale, loadLocaleMessages } from "./locales"; import "./styles/tailwind.css"; import config from "./aws-exports"; import configService from "./services/config"; @@ -274,4 +274,12 @@ router.onError(async (error) => { } }); -app.mount("#app"); +// Ensure the active locale's messages are loaded (en-gb is bundled; any other +// language is fetched as a code-split chunk) before the first render. +loadLocaleMessages(getLocale()) + // On a locale-chunk load failure, fall back to the bundled en-gb messages + // (no console noise). The app must mount regardless. + .catch(() => {}) + .finally(() => { + app.mount("#app"); + });