diff --git a/apps/desktop/src/components/editor/__tests__/AiAssistant.writeConfirmationProposal.spec.ts b/apps/desktop/src/components/editor/__tests__/AiAssistant.writeConfirmationProposal.spec.ts index f8258e1d27..1d5255a4a3 100644 --- a/apps/desktop/src/components/editor/__tests__/AiAssistant.writeConfirmationProposal.spec.ts +++ b/apps/desktop/src/components/editor/__tests__/AiAssistant.writeConfirmationProposal.spec.ts @@ -2,7 +2,7 @@ import { readFileSync } from "node:fs"; import { describe, expect, it } from "vitest"; const source = readFileSync(new URL("../AiAssistant.vue", import.meta.url), "utf8"); -const localePaths = ["en", "es", "it", "ja", "ko", "pt-BR", "tr", "zh-CN", "zh-TW"]; +const localePaths = ["az", "en", "es", "it", "ja", "ko", "pt-BR", "tr", "zh-CN", "zh-TW"]; describe("AI assistant write confirmation replacement", () => { it("renders a localized confirmation from the backend's semantic event", () => { diff --git a/apps/desktop/src/components/editor/__tests__/EditorSettingsDialog.previewPosition.spec.ts b/apps/desktop/src/components/editor/__tests__/EditorSettingsDialog.previewPosition.spec.ts index 1a92c3db32..753a20da0c 100644 --- a/apps/desktop/src/components/editor/__tests__/EditorSettingsDialog.previewPosition.spec.ts +++ b/apps/desktop/src/components/editor/__tests__/EditorSettingsDialog.previewPosition.spec.ts @@ -104,7 +104,7 @@ describe("EditorSettingsDialog live preview placement", () => { it("describes the execute shortcut below the mode selector in every supported locale", () => { expect(editorSection.indexOf("executeModeDescription")).toBeGreaterThan(editorSection.indexOf("executeModeLabel")); - for (const locale of ["zh-CN", "zh-TW", "en", "es", "it", "ja", "ko", "pt-BR", "tr"]) { + for (const locale of ["zh-CN", "zh-TW", "en", "es", "it", "ja", "ko", "pt-BR", "tr", "az"]) { const source = readFileSync(new URL(`../../../i18n/locales/${locale}.ts`, import.meta.url), "utf8"); expect(source, locale).toContain("executeModeDescription:"); } @@ -115,7 +115,7 @@ describe("EditorSettingsDialog live preview placement", () => { expect(editorSection).toContain("{{ completionTriggerModeDescription }}"); expect(editorSection).not.toContain('t("settings.completionTriggerModeDescription")'); - for (const locale of ["zh-CN", "zh-TW", "en", "es", "it", "ja", "ko", "pt-BR", "tr"]) { + for (const locale of ["zh-CN", "zh-TW", "en", "es", "it", "ja", "ko", "pt-BR", "tr", "az"]) { const source = readFileSync(new URL(`../../../i18n/locales/${locale}.ts`, import.meta.url), "utf8"); for (const key of ["completionTriggerModeManualDescription", "completionTriggerModeRequirePrefixDescription", "completionTriggerModePositionalDescription"]) { expect(source, `${locale}:${key}`).toContain(`${key}:`); @@ -174,7 +174,7 @@ describe("EditorSettingsDialog live preview placement", () => { expect(dataSection.match(/editDataGridFilterEditorView = '(quick|conditions|text)'/g)).toHaveLength(3); expect(dataSection).not.toContain(' { expect(editorPreview.indexOf('t("settings.previewSyntaxErrorHint")')).toBeGreaterThan(preview); }); - it.each(["en", "zh-CN", "zh-TW", "es", "pt-BR", "it", "ja", "ko", "tr"])("locale %s translates settings.previewSyntaxErrorHint", (locale) => { + it.each(["en", "zh-CN", "zh-TW", "es", "pt-BR", "it", "ja", "ko", "tr", "az"])("locale %s translates settings.previewSyntaxErrorHint", (locale) => { const localeSource = readFileSync(new URL(`../../../i18n/locales/${locale}.ts`, import.meta.url), "utf8"); expect(localeSource).toMatch(/previewSyntaxErrorHint: ".+"/); }); diff --git a/apps/desktop/src/components/meilisearch/MeilisearchIndexView.vue b/apps/desktop/src/components/meilisearch/MeilisearchIndexView.vue index 533c97a1c6..5731feb0e5 100644 --- a/apps/desktop/src/components/meilisearch/MeilisearchIndexView.vue +++ b/apps/desktop/src/components/meilisearch/MeilisearchIndexView.vue @@ -5,6 +5,7 @@ import dayjs from "dayjs"; import relativeTime from "dayjs/plugin/relativeTime"; import "dayjs/locale/zh-cn"; import "dayjs/locale/zh-tw"; +import "dayjs/locale/az"; import "dayjs/locale/es"; import "dayjs/locale/it"; import "dayjs/locale/ja"; @@ -23,6 +24,7 @@ import MeilisearchTasksPage from "./MeilisearchTasksPage.vue"; dayjs.extend(relativeTime); const DAYJS_LOCALES: Record = { + az: "az", "zh-CN": "zh-cn", "zh-TW": "zh-tw", "pt-BR": "pt-br", diff --git a/apps/desktop/src/i18n/__tests__/agentOfflineExportParity.spec.ts b/apps/desktop/src/i18n/__tests__/agentOfflineExportParity.spec.ts index daf42b6510..a2272d44c7 100644 --- a/apps/desktop/src/i18n/__tests__/agentOfflineExportParity.spec.ts +++ b/apps/desktop/src/i18n/__tests__/agentOfflineExportParity.spec.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from "vitest"; +import az from "../locales/az"; import en from "../locales/en"; import es from "../locales/es"; import itLocale from "../locales/it"; @@ -12,6 +13,7 @@ import zhTW from "../locales/zh-TW"; type Messages = Record; const locales: Array<[string, Messages]> = [ + ["az", az], ["es", es], ["it", itLocale], ["ja", ja], diff --git a/apps/desktop/src/i18n/__tests__/aiRichContentParity.spec.ts b/apps/desktop/src/i18n/__tests__/aiRichContentParity.spec.ts index bd767db6e0..dbd527baa3 100644 --- a/apps/desktop/src/i18n/__tests__/aiRichContentParity.spec.ts +++ b/apps/desktop/src/i18n/__tests__/aiRichContentParity.spec.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from "vitest"; +import az from "../locales/az"; import en from "../locales/en"; import es from "../locales/es"; import it_ from "../locales/it"; @@ -10,6 +11,7 @@ import zhCN from "../locales/zh-CN"; import zhTW from "../locales/zh-TW"; const locales: Array<[string, Record]> = [ + ["az", az], ["en", en], ["es", es], ["it", it_], diff --git a/apps/desktop/src/i18n/__tests__/backendErrors.spec.ts b/apps/desktop/src/i18n/__tests__/backendErrors.spec.ts index 5a1cc198f0..141625ce32 100644 --- a/apps/desktop/src/i18n/__tests__/backendErrors.spec.ts +++ b/apps/desktop/src/i18n/__tests__/backendErrors.spec.ts @@ -3,6 +3,7 @@ import { describe, expect, it as test } from "vitest"; import { createI18n } from "vue-i18n"; import { translateBackendError, type BackendErrorTranslate } from "@/i18n/backend-errors"; import { BackendErrorException, formatError, normalizeBackendError, sanitizeBackendErrorMessage } from "@/lib/backend/errorUtils"; +import az from "@/i18n/locales/az"; import en from "@/i18n/locales/en"; import es from "@/i18n/locales/es"; import it from "@/i18n/locales/it"; @@ -15,6 +16,7 @@ import zhTW from "@/i18n/locales/zh-TW"; import { PHOENIX_DRIVER_NOT_INSTALLED_ERROR, PHOENIX_JDBC_PLUGIN_NOT_INSTALLED_ERROR } from "@/lib/database/phoenixConnection"; const LOCALES = { + az, en, es, it, diff --git a/apps/desktop/src/i18n/__tests__/cachedResultMessages.spec.ts b/apps/desktop/src/i18n/__tests__/cachedResultMessages.spec.ts index 8bb609f938..9ccf341ecf 100644 --- a/apps/desktop/src/i18n/__tests__/cachedResultMessages.spec.ts +++ b/apps/desktop/src/i18n/__tests__/cachedResultMessages.spec.ts @@ -1,5 +1,6 @@ import { readFileSync } from "node:fs"; import { describe, expect, it as test } from "vitest"; +import az from "@/i18n/locales/az"; import en from "@/i18n/locales/en"; import es from "@/i18n/locales/es"; import it from "@/i18n/locales/it"; @@ -18,6 +19,7 @@ function cachedResultMessages(messages: Record): Record { test.each([ + ["Azerbaijani", az], ["English", en], ["Spanish", es], ["Italian", it], diff --git a/apps/desktop/src/i18n/__tests__/consulUiParity.spec.ts b/apps/desktop/src/i18n/__tests__/consulUiParity.spec.ts index cf53220a3b..8756550035 100644 --- a/apps/desktop/src/i18n/__tests__/consulUiParity.spec.ts +++ b/apps/desktop/src/i18n/__tests__/consulUiParity.spec.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from "vitest"; import { readFileSync } from "node:fs"; +import az from "../locales/az"; import en from "../locales/en"; import es from "../locales/es"; import it_ from "../locales/it"; @@ -11,6 +12,7 @@ import zhCN from "../locales/zh-CN"; import zhTW from "../locales/zh-TW"; const locales: Array<[string, Record]> = [ + ["az", az], ["en", en], ["es", es], ["it", it_], diff --git a/apps/desktop/src/i18n/__tests__/customTypeMessages.spec.ts b/apps/desktop/src/i18n/__tests__/customTypeMessages.spec.ts index c58b6f6e29..fe9d1ae8d5 100644 --- a/apps/desktop/src/i18n/__tests__/customTypeMessages.spec.ts +++ b/apps/desktop/src/i18n/__tests__/customTypeMessages.spec.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from "vitest"; +import az from "@/i18n/locales/az"; import en from "@/i18n/locales/en"; import es from "@/i18n/locales/es"; import itLocale from "@/i18n/locales/it"; @@ -14,7 +15,7 @@ type Messages = { contextMenu: typeof en.contextMenu; }; -const locales = { es, it: itLocale, ja, ko, "pt-BR": ptBR, tr, "zh-CN": zhCN, "zh-TW": zhTW } as unknown as Record; +const locales = { az, es, it: itLocale, ja, ko, "pt-BR": ptBR, tr, "zh-CN": zhCN, "zh-TW": zhTW } as unknown as Record; describe("custom type translations", () => { it("provides localized labels in every supported non-English locale", () => { diff --git a/apps/desktop/src/i18n/__tests__/docsNamespaceParity.spec.ts b/apps/desktop/src/i18n/__tests__/docsNamespaceParity.spec.ts index 69b7dbcad0..0c582e5455 100644 --- a/apps/desktop/src/i18n/__tests__/docsNamespaceParity.spec.ts +++ b/apps/desktop/src/i18n/__tests__/docsNamespaceParity.spec.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from "vitest"; +import az from "../locales/docs/az"; import en from "../locales/docs/en"; import es from "../locales/docs/es"; import it_ from "../locales/docs/it"; @@ -17,6 +18,7 @@ import zhTW from "../locales/docs/zh-TW"; // have every key and this test would pass while translations were missing — // the fallback would silently defeat the test written to catch it. const locales: Array<[string, Record]> = [ + ["az", az], ["es", es], ["it", it_], ["ja", ja], diff --git a/apps/desktop/src/i18n/__tests__/executionNamespaceParity.spec.ts b/apps/desktop/src/i18n/__tests__/executionNamespaceParity.spec.ts index 3d616037f1..ee4e62db46 100644 --- a/apps/desktop/src/i18n/__tests__/executionNamespaceParity.spec.ts +++ b/apps/desktop/src/i18n/__tests__/executionNamespaceParity.spec.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from "vitest"; +import az from "../locales/az"; import en from "../locales/en"; import es from "../locales/es"; import it_ from "../locales/it"; @@ -12,6 +13,7 @@ import zhTW from "../locales/zh-TW"; type Messages = Record; const locales: Array<[string, Messages]> = [ + ["az", az], ["es", es], ["it", it_], ["ja", ja], diff --git a/apps/desktop/src/i18n/__tests__/sqliteRebuildNotice.spec.ts b/apps/desktop/src/i18n/__tests__/sqliteRebuildNotice.spec.ts index 4f8054da5b..bb93ec1bff 100644 --- a/apps/desktop/src/i18n/__tests__/sqliteRebuildNotice.spec.ts +++ b/apps/desktop/src/i18n/__tests__/sqliteRebuildNotice.spec.ts @@ -1,4 +1,5 @@ import { describe, expect, it as test } from "vitest"; +import az from "@/i18n/locales/az"; import en from "@/i18n/locales/en"; import es from "@/i18n/locales/es"; import it from "@/i18n/locales/it"; @@ -16,6 +17,7 @@ function sqliteRebuildNotice(messages: Record): string { describe("SQLite rebuild notice", () => { test.each([ + ["Azerbaijani", az], ["English", en], ["Spanish", es], ["Italian", it], diff --git a/apps/desktop/src/i18n/__tests__/tabContextMenuKeys.spec.ts b/apps/desktop/src/i18n/__tests__/tabContextMenuKeys.spec.ts index 7ef13ca94f..caf8087ef7 100644 --- a/apps/desktop/src/i18n/__tests__/tabContextMenuKeys.spec.ts +++ b/apps/desktop/src/i18n/__tests__/tabContextMenuKeys.spec.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from "vitest"; +import az from "../locales/az"; import en from "../locales/en"; import es from "../locales/es"; import it_ from "../locales/it"; @@ -23,6 +24,7 @@ const tabMenuKeys = ["changeOrientation", "closeAllTabs", "closeLeftTabs", "clos // real text for every UI language, while the en test above is the one that // actually catches a missing-from-everywhere key. const locales: Array<[string, Record]> = [ + ["az", az as Record], ["en", en as Record], ["es", es], ["it", it_], diff --git a/apps/desktop/src/i18n/__tests__/tableInfoPinMessages.spec.ts b/apps/desktop/src/i18n/__tests__/tableInfoPinMessages.spec.ts index bf48ac064c..4d960a2b41 100644 --- a/apps/desktop/src/i18n/__tests__/tableInfoPinMessages.spec.ts +++ b/apps/desktop/src/i18n/__tests__/tableInfoPinMessages.spec.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from "vitest"; +import az from "../locales/az"; import en from "../locales/en"; import es from "../locales/es"; import it_ from "../locales/it"; @@ -11,6 +12,7 @@ import zhTW from "../locales/zh-TW"; const locales: Array<[string, Record]> = [ ["en", en as Record], + ["az", az as Record], ["es", es], ["it", it_], ["ja", ja], diff --git a/apps/desktop/src/i18n/__tests__/userAdminHostMessages.spec.ts b/apps/desktop/src/i18n/__tests__/userAdminHostMessages.spec.ts index 133d76548e..c5d700225e 100644 --- a/apps/desktop/src/i18n/__tests__/userAdminHostMessages.spec.ts +++ b/apps/desktop/src/i18n/__tests__/userAdminHostMessages.spec.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from "vitest"; +import az from "@/i18n/locales/az"; import en from "@/i18n/locales/en"; import es from "@/i18n/locales/es"; import itLocale from "@/i18n/locales/it"; @@ -16,7 +17,7 @@ describe("user administration Host translations", () => { }); it("provides localized Host-change labels in every non-English locale", () => { - const locales = { es, it: itLocale, ja, ko, "pt-BR": ptBR, tr, "zh-CN": zhCN, "zh-TW": zhTW }; + const locales = { az, es, it: itLocale, ja, ko, "pt-BR": ptBR, tr, "zh-CN": zhCN, "zh-TW": zhTW }; for (const [locale, messages] of Object.entries(locales)) { expect(messages.userAdmin.changeHost, locale).not.toBe(en.userAdmin.changeHost); expect(messages.userAdmin.newHost, locale).not.toBe(en.userAdmin.newHost); diff --git a/apps/desktop/src/i18n/index.ts b/apps/desktop/src/i18n/index.ts index 026d1f37a0..177f7edf85 100644 --- a/apps/desktop/src/i18n/index.ts +++ b/apps/desktop/src/i18n/index.ts @@ -3,17 +3,18 @@ import en from "./locales/en"; import { safeLocalStorageGet, safeLocalStorageSet } from "@/lib/backend/safeStorage"; import { isTauriRuntime } from "@/lib/backend/tauriRuntime"; -export type Locale = "en" | "es" | "it" | "ja" | "ko" | "pt-BR" | "tr" | "zh-CN" | "zh-TW"; +export type Locale = "az" | "en" | "es" | "it" | "ja" | "ko" | "pt-BR" | "tr" | "zh-CN" | "zh-TW"; type LocaleMessages = Record; type I18nGlobal = { locale: { value: Locale }; setLocaleMessage: (locale: Locale, messages: LocaleMessages) => void; }; -const supportedLocales: Locale[] = ["en", "es", "it", "ja", "ko", "pt-BR", "tr", "zh-CN", "zh-TW"]; +const supportedLocales: Locale[] = ["az", "en", "es", "it", "ja", "ko", "pt-BR", "tr", "zh-CN", "zh-TW"]; const defaultLocale: Locale = "en"; const loadedLocales = new Set([defaultLocale]); const localeLoaders: Record, () => Promise<{ default: LocaleMessages }>> = { + az: () => import("./locales/az"), es: () => import("./locales/es"), it: () => import("./locales/it"), ja: () => import("./locales/ja"), @@ -40,6 +41,7 @@ export function localeFromLanguageTag(value: string | null | undefined): Locale } return "zh-CN"; } + if (normalized === "az" || normalized.startsWith("az-")) return "az"; if (normalized === "en" || normalized.startsWith("en-")) return "en"; if (normalized === "es" || normalized.startsWith("es-")) return "es"; if (normalized === "it" || normalized.startsWith("it-")) return "it"; diff --git a/apps/desktop/src/i18n/locales/az.ts b/apps/desktop/src/i18n/locales/az.ts new file mode 100644 index 0000000000..6ae6fb62cf --- /dev/null +++ b/apps/desktop/src/i18n/locales/az.ts @@ -0,0 +1,9712 @@ +import { withEnglishFallback } from "./fallback"; +import docs from "./docs/az"; +import { consulUiMessages } from "./consulUi"; +import { sqlServerTraceMessages as sqlServerTrace } from "./sqlServerTraceMessages"; +import { meilisearchManagementAz } from "./meilisearchManagement"; + +const consul = { + ...consulUiMessages, + prefixPlaceholder: "Açar prefiksi, məsələn, app/ və ya services/", + newKey: "Yeni açar", + loadingKeys: "Açarlar yüklənir...", + empty: "Heç bir açar tapılmadı", + loadMore: "Daha çox yüklə", + selectKey: "Dəyərinə baxmaq üçün açar seçin", + loadingValue: "Dəyər yüklənir...", + notFound: "Açar tapılmadı", + edit: "Redaktə et", + editKey: "Açarı redaktə et", + delete: "Sil", + deleteTitle: "Consul KV açarını sil", + keyLabel: "Açar", + keyPlaceholder: "path/to/key", + keyRequired: "Açar tələb olunur", + rootReadonly: "Kök prefiksi dəyişdirilə bilməz. Açar yolunu daxil edin.", + saved: "Açar yadda saxlanıldı", + deleted: "Açar silindi", + base64Readonly: "İkilik dəyərləri Base64 rejimində redaktə edin.", + rename: "Adını dəyiş", + clone: "Klonla", + copyKey: "Açarı kopyala", + export: "İxrac et", + value: "Dəyər", + valueContent: "Dəyər", + format: "Format", + metadata: "KV metaverilənləri", + prettyJson: "Səliqəli", + invalidJson: "Yanlış JSON", + summarySize: "Ölçü", + conflict: "Bu açar yükləndikdən sonra dəyişdirilib. Onu yeniləyin və yenidən cəhd edin.", + keyAlreadyExists: "Bu adda açar artıq mövcuddur. Başqa ad seçin və ya mövcud açarı redaktə edin.", + aclFiltered: "Bəzi Consul KV açarları ACL siyasətləri ilə gizlədilib.", + locked: "Bu açar Consul sessiyası tərəfindən kilidlənib və redaktə edilə və ya silinə bilməz.", + valueTooLarge: "Consul KV dəyərləri 512 KiB-dən çox ola bilməz.", + watchKey: "İzlə", + stopWatching: "Dayandır", + workspace: { + overview: "Ümumi baxış", + kv: "KV", + services: "Xidmətlər", + health: "İşlək vəziyyət", + sessions: "Sessiyalar", + scope: "Əhatə dairəsi", + mesh: "Xidmət şəbəkəsi", + tools: "Alətlər", + operator: "Operator", + refresh: "İmkanları yenilə", + loading: "Consul imkanları yüklənir...", + agentIdentity: "Agentin kimliyi", + capabilities: "İmkanlar", + version: "Versiya", + edition: "Buraxılış", + datacenter: "Məlumat mərkəzi", + node: "Agent qovşağı", + mode: "Agent rejimi", + agent: "Agent API-si", + acl: "ACL", + namespaces: "Ad fəzaları", + partitions: "İnzibati bölmələr", + enterprise: "Korporativ", + community: "İcma", + serverMode: "Server", + clientMode: "Müştəri", + capability: { + supported: "Dəstəklənir", + unsupported: "Dəstəklənmir", + forbidden: "İcazə yoxdur", + unknown: "Naməlum", + }, + }, +}; + +export default withEnglishFallback({ + customType: { + kinds: { + base: "Əsas", + composite: "Mürəkkəb", + domain: "Domen", + enum: "Sadalanan", + range: "Aralıq", + multirange: "Çoxaralıqlı", + }, + tabs: { + members: "Üzvlər", + properties: "Xassələr", + ddl: "DDL", + }, + members: { + empty: "Bu növün üzvləri yoxdur.", + name: "Ad", + type: "Növ", + nullable: "NULL ola bilər", + default: "Standart", + comment: "Şərh", + }, + properties: { + empty: "Atributlar yoxdur.", + baseType: "Əsas növ", + notNull: "NULL deyil", + default: "Standart", + collation: "Müqayisə qaydası", + domainConstraint: "Məhdudiyyət", + rangeSubtype: "Aralığın alt növü", + rangeMultirange: "Çoxaralıqlı növ", + }, + ddl: { + empty: "Bu növ üçün DDL yoxdur.", + incomplete: "Yaradılmış DDL natamamdır və kopyalanmayıb. Xəbərdarlıqları nəzərdən keçirmək üçün növün təfərrüatlarını açın.", + }, + }, + app: { + name: "DBX", + }, + docs, + auth: { + rateLimited: "{seconds} saniyə sonra yenidən cəhd edin", + setupTitle: "Giriş parolunu təyin et", + setupDescription: "İnstansiyanızı qorumaq üçün parol təyin edin", + loginDescription: "Verilənlər bazasının idarə edilməsi üçün alət", + newPassword: "Yeni parolu daxil edin", + confirmPassword: "Parolu təsdiqləyin", + enterPassword: "Giriş parolunu daxil edin", + passwordMismatch: "Parollar uyğun gəlmir", + setPassword: "Parol təyin et", + login: "Daxil ol", + processing: "Emal edilir...", + loginFailed: "Yanlış parol", + connectFailed: "Əlaqə qurulmadı", + changePassword: "Parolu dəyiş", + oldPassword: "Cari parol", + oldPasswordWrong: "Cari parol yanlışdır", + passwordChanged: "Parol uğurla dəyişdirildi", + changePasswordFailed: "Parolu dəyişmək mümkün olmadı", + changePasswordDescription: "Cari parolunuzu daxil edin və yeni parol seçin", + }, + toolbar: { + moreActions: "Digər əməliyyatlar", + newConnection: "Yeni əlaqə", + newQuery: "Yeni sorğu", + execute: "İcra et", + executeShortcut: "Seçilmiş hissəni/sorğunu icra et ({shortcut})", + stopQuery: "Sorğunu dayandır", + explainPlan: "Planı izah et", + stopExplain: "İzahı dayandır", + autotrace: "Avtomatik izləmə (sorğunu icra edir)", + explainAnalyze: "EXPLAIN ANALYZE (sorğunu icra edir)", + actualPlan: "Faktiki icra planı (SET STATISTICS XML)", + formatSql: "SQL-i formatla", + formatSqlFailed: "SQL-i formatlamaq mümkün olmadı", + formatAutoDetectFailed: "Seçilmiş məzmunu tanımaq və ya formatlamaq mümkün deyil", + compressSql: "SQL-i sıxlaşdır", + keywordCaseLower: "SQL açar sözlərini kiçik hərflərlə yaz", + keywordCaseUpper: "SQL açar sözlərini böyük hərflərlə yaz", + sqlSemanticDiagnosticsToggleOn: "SQL semantik diaqnostikası: aktiv (deaktiv etmək üçün klikləyin)", + sqlSemanticDiagnosticsToggleOff: "SQL semantik diaqnostikası: deaktiv (aktiv etmək üçün klikləyin)", + insertValueHintsToggleOn: "INSERT sütun göstərişləri: aktiv (deaktiv etmək üçün klikləyin)", + insertValueHintsToggleOff: "INSERT sütun göstərişləri: deaktiv (aktiv etmək üçün klikləyin)", + autoCommit: "Avtomatik təsdiqləmə", + manualTransaction: "Əl ilə tranzaksiya", + autoCommitAgent: "Avtomatik təsdiqləmə (Agent server hissəsindən asılıdır)", + manualTransactionAgent: "Əl ilə tranzaksiya (Agent server hissəsindən asılıdır)", + commit: "Təsdiqlə", + rollback: "Geri qaytar", + txnAutoRolledBack: "5 dəqiqə fəaliyyətsizlikdən sonra tranzaksiya avtomatik geri qaytarıldı", + previewSql: "SQL önbaxışı", + previewQuery: "Sorğu önbaxışı", + hidePreviewSql: "SQL önbaxışını gizlət", + saveSql: "SQL kitabxanasında yadda saxla", + saveSqlFile: "İlkin faylda yadda saxla", + openSql: "SQL faylını aç", + exPasteSqlInCondition: "ExPaste: IN şərti kimi yerləşdir", + theme: "Tema", + themeLight: "Açıq", + themeDark: "Tünd", + themeSystem: "Sistemə uyğunlaşdır", + sqlSaved: "SQL yadda saxlanıldı", + sqlOpenFailed: "Faylı açmaq mümkün olmadı: {message}", + sqlSaveFailed: "Faylı yadda saxlamaq mümkün olmadı: {message}", + driverManager: "Drayver meneceri", + updatableDriverCount: "Yenilənə bilən drayverlərin sayı", + mcpUpdateAvailable: "MCP serveri üçün yeniləmə mövcuddur", + blockDangerousRedisCommands: "Təhlükəli əmrləri blokla", + multiDbExecute: "Bir neçə verilənlər bazasında icra et", + }, + multiDbExecute: { + title: "Bir neçə verilənlər bazasında icra", + progress: "İcra gedişi ({completed}/{total})", + sqlPreview: "SQL önbaxışı", + databaseType: "Verilənlər bazasının növü", + searchTargets: "Əlaqələr, verilənlər bazaları, sxemlər üzrə axtarış...", + selectedCount: "{count} seçilib", + selectedTargets: "Seçilmiş hədəflər", + selectGroup: "İcra hədəfləri qrupu", + noGroupSelected: "Hədəf qrupu seçin", + manageGroups: "Qrupları idarə et", + manageGroupsDescription: "Hədəf qrupları təkrar istifadə edilə bilən SQL icra hədəfləridir və əlaqə qruplarını dəyişmir.", + noGroups: "Hədəf qrupları yoxdur", + loadGroup: "Qrupu yüklə", + available: "Mövcuddur", + typeMismatch: "Növ uyğunsuzluğu", + targets: "hədəflər", + saveAsGroup: "Qrup kimi yadda saxla", + saveChanges: "Dəyişiklikləri yadda saxla", + saveAsNewGroup: "Yeni qrup kimi yadda saxla", + renameGroup: "Qrupun adını dəyiş", + deleteGroup: "Qrupu sil", + deleteGroupConfirm: "“{name}” hədəf qrupu silinsin? Əlaqələrə və verilənlər bazalarına təsir edilməyəcək.", + groupName: "Qrupun adı", + groupNameRequired: "Qrupun adını daxil edin.", + groupNameExists: "Bu adda qrup artıq mövcuddur.", + groupSaved: "Hədəf qrupu yadda saxlanıldı", + groupSaveFailed: "Hədəf qrupunu yadda saxlamaq mümkün olmadı: {message}", + groupLoadFailed: "Hədəf qrupunu yükləmək mümkün olmadı: {message}", + groupModified: "Hədəf seçimi dəyişdirilib", + unsavedChangesConfirm: "Cari hədəf seçimində yadda saxlanılmamış dəyişikliklər var. Davam etməzdən əvvəl onlar yadda saxlanılsın?", + cancelOperation: "Əməliyyatı ləğv et", + discardChanges: "Dəyişiklikləri at", + internalCatalog: "daxili", + defaultDatabase: "standart verilənlər bazası", + noDatabase: "əlaqə əhatəsi", + clearTargets: "Təmizlə", + noTargets: "İcra edilə bilən hədəflər yoxdur.", + removeTarget: "Hədəfi çıxar", + validTarget: "Hədəf etibarlıdır", + needsRecheck: "Hədəfin yoxlanılması gözlənilir", + needsRecheckCount: "{count} hədəfin yoxlanılması lazımdır", + invalidTargetCount: "{count} etibarsız hədəf", + invalidTarget: "Etibarsız hədəf", + connectionOnlyTarget: "Əlaqə səviyyəsində hədəf", + targetMissingConnection: "Əlaqə artıq mövcud deyil", + targetTypeMismatch: "Əlaqənin verilənlər bazası növü artıq uyğun gəlmir", + targetCatalogMissing: "Kataloq artıq mövcud deyil", + targetDatabaseMissing: "Verilənlər bazası artıq mövcud deyil və ya əlçatan deyil", + targetSchemaMissing: "Sxem artıq mövcud deyil və ya əlçatan deyil", + targetPermissionDenied: "Hədəfin yoxlanılması zamanı icazə verilmədi", + targetValidationFailed: "Hədəfi yoxlamaq mümkün olmadı", + retryValidation: "Yoxlamaya yenidən cəhd et", + serialContinueOnError: "Ardıcıl icra; xətalardan sonra davam et", + parallelContinueOnError: "Paralel icra; xətalardan sonra davam et", + serial: "Ardıcıl", + parallel: "Paralel", + switchToParallel: "Paralel icraya keç", + switchToSerial: "Ardıcıl icraya keç", + elapsed: "Keçən vaxt: {duration}", + pending: "Gözləyir", + running: "İcra edilir", + success: "Uğurlu", + failed: "Uğursuz", + skipped: "Ötürülüb", + cancelled: "Ləğv edilib", + notExecuted: "İcra edilməyib", + execute: "İcra et", + cancelBatch: "Toplu əməliyyatı ləğv et", + dangerTitle: "Hədəfdə icranı təsdiqlə", + dangerConfirm: "Bu hədəfdə icra et", + resultTabPrefix: "Çoxbazalı", + }, + externalSqlFile: { + modifiedTitle: "Fayl DBX-dən kənarda dəyişdirilib", + modifiedDescription: "{path} başqa proqram tərəfindən dəyişdirilib. Hansı versiyanın saxlanılacağını seçin.", + deletedTitle: "Fayl artıq mövcud deyil", + deletedDescription: "{path} DBX-dən kənarda silinib və ya köçürülüb. Redaktorun məzmunu hələ də mövcuddur.", + unsavedWarning: "Bu redaktorda yadda saxlanılmamış dəyişikliklər də var. Xarici versiya yüklənərsə, onlar atılacaq.", + deletedUnsavedWarning: "Bu redaktorda yadda saxlanılmamış dəyişikliklər var. Vərəq bağlanarsa, onlar atılacaq.", + keepEditor: "Redaktorun məzmununu saxla", + loadLatest: "Ən son versiyanı yüklə", + cancelSave: "Yadda saxlamağı ləğv et", + loadExternal: "Xarici versiyanı yüklə", + overwriteSave: "Faylın üzərinə yaz", + keepEditing: "Redaktəyə davam et", + saveAs: "Fərqli saxla...", + recreate: "Faylı yenidən yarat", + closeTab: "Vərəqi bağla", + loadFailed: "Faylın ən son məzmununu yükləmək mümkün olmadı: {message}", + checkFailed: "Xarici SQL faylını yoxlamaq mümkün olmadı: {message}", + changedAgain: "Fayl yadda saxlanılarkən yenidən dəyişdirildi. Yenidən cəhd edin.", + }, + updates: { + title: "Yeniləmələr", + check: "Yeniləmələri yoxla", + updateReadyTooltip: "Yeniləmə hazırdır — quraşdırmaq üçün klikləyin", + restartRequiredTooltip: "Yeniləmə quraşdırılıb — tamamlamaq üçün yenidən başladın", + availableTitle: "Yeniləmə mövcuddur", + availableMessage: "DBX {latest} mövcuddur. Siz {current} versiyasından istifadə edirsiniz.", + upToDate: "DBX ən son versiyadadır ({version}).", + failed: "Yeniləmələri yoxlamaq mümkün olmadı: {error}", + rateLimited: "GitHub yeniləmə yoxlamalarının tezliyi müvəqqəti məhdudlaşdırılıb. Əl ilə yoxlamaq üçün buraxılış səhifəsini aça bilərsiniz.", + openRelease: "Buraxılışı aç", + ignoreVersion: "Bu versiyanı nəzərə alma", + versionIgnored: "{version} versiyası nəzərə alınmır. Növbəti versiya buraxıldıqda sizə xatırladılacaq.", + ignoreVersionFailed: "Nəzərə alınmayan versiyanı yadda saxlamaq mümkün olmadı: {error}", + downloadInBackground: "Arxa planda endir", + cancelDownload: "Endirməni ləğv et", + downloadStarted: "DBX {version} arxa planda endirilir.", + activeTasksBlockUpdate: "{count} tapşırıq hələ də icra edilir. DBX-i yeniləməzdən əvvəl onların bitməsini gözləyin.", + portableAutomaticUpdate: "DBX imzalanmış daşınabilən ZIP-i endirəcək, çıxışdan sonra yalnız DBX.exe faylını əvəz edəcək və avtomatik yenidən başlayacaq. portable.dbx və verilənlər saxlanılacaq.", + windows7ManualUpdate: "Windows 7 üçün xüsusi WebView2 109 oflayn quraşdırıcısı tələb olunur. Yeniləmək üçün buraxılış səhifəsini açın və Windows 7 paketini endirin.", + downloading: "Endirilir: {progress}%", + downloadFailed: "Yeniləməni endirmək mümkün olmadı: {error}", + downloadCanceled: "Yeniləmənin endirilməsi ləğv edildi.", + readyToInstall: "DBX {version} quraşdırılmağa hazırdır.", + installNow: "İndi quraşdır", + installedReadyToRestart: "DBX yeniləndi. Tamamlamaq üçün yenidən başladın.", + networkOrMirrorFailed: "Şəbəkə əlaqəsinin vaxtı bitdi və ya endirmə güzgüləri hazırda əlçatan deyil. Əlaqənizi yoxlayın və ya əl ilə endirmək üçün 'Buraxılışı aç' düyməsinə klikləyin.", + source: "Yeniləmə mənbəyi", + sourceOfficial: "Rəsmi mənbə", + sourceCnb: "CNB", + installing: "Yeniləmə quraşdırılır...", + installFailed: "Yeniləməni quraşdırmaq mümkün olmadı: {error}", + restart: "Çıx və yenidən başlat", + restartFailed: "Tətbiqi yenidən başlatmaq mümkün olmadı: {error}", + exitAndUpdate: "Çıx və yenilə", + dockerUsersRun: "Docker istifadəçiləri bu əmri işlətməlidir", + toUpdate: "yeniləmək üçün", + }, + sidebar: { + connections: "ƏLAQƏLƏR", + noConnections: "Hələ əlaqə yoxdur", + importExport: "İdxal / ixrac", + import: "Əlaqələri idxal et", + importDbx: "DBX konfiqurasiyasını idxal et", + importNavicat: "Navicat NCX-i idxal et", + importDbeaver: "DBeaver-i idxal et", + importDatagrip: "DataGrip-i idxal et", + export: "Əlaqələri ixrac et", + collapseAll: "Hamısını yığ", + collapse: "Yan paneli yığ", + expand: "Yan paneli genişləndir", + showMore: "Daha {count} göstər...", + filterByType: "Növə görə süzgəcdən keçir", + showActiveConnectionsOnly: "Yalnız aktiv əlaqələri göstər", + activeConnectionsStatus: "Aktiv əlaqələr: {count}", + disconnectAllActiveConnections: "Bütün aktiv əlaqələri kəs", + sortConnections: "Əlaqələri sırala", + sortConnectionsManual: "Əl ilə sıralama", + sortConnectionsAscending: "Ad: A–Z", + sortConnectionsDescending: "Ad: Z–A", + searchScopeConnection: "Əlaqə", + searchScopeDatabase: "Verilənlər bazası", + searchScopeSchema: "Sxem", + searchScopeTable: "Cədvəl", + searchScopeView: "Görünüş", + searchTablesInCurrentScope: "Bu verilənlər bazasında cədvəl axtarışı...", + clearTableSearch: "Cədvəl axtarışını təmizlə", + localTableSearch: "Yerli axtarış", + localTableSearchTooltip: "Uzaq sorğular göndərmədən yerli cədvəl indeksində axtarın. Uzaqdan axtarmaq üçün deaktiv edin. İndeksi yaratmaq və ya yeniləmək üçün yeniləmə əməliyyatından istifadə edin.", + refreshLocalTableSearchIndex: "Yerli cədvəl indeksini yenilə", + globalLocalSearch: "Yerli axtarış", + globalLocalSearchTooltip: "Uzaq sorğular göndərmədən yalnız yan paneldə hazırda yüklənmiş obyektlərdə axtarın.", + regexSearch: "Müntəzəm ifadə ilə axtarış", + regexSearchTooltip: "Yan paneldəki adları, şərhləri və ləqəbləri JavaScript müntəzəm ifadələri ilə uyğunlaşdırın.", + clearFilter: "Süzgəci təmizlə", + locateActiveTab: "Yan paneldə tap", + }, + savedSql: { + saveToLibrary: "SQL kitabxanasında yadda saxla", + saveToFile: "Yerli yaddaşda saxla", + save: "Yadda saxla", + saved: "SQL yadda saxlanıldı", + saveFailed: "SQL-i yadda saxlamaq mümkün olmadı: {message}", + fileName: "Faylın adı", + folder: "Qovluq", + rootFolder: "SQL kitabxanası", + newQuery: "Yeni sorğu", + newFolder: "Yeni SQL qovluğu", + newSubfolder: "Yeni alt qovluq", + newFolderDefault: "Yeni qovluq", + renameFolder: "Qovluğun adını dəyiş", + deleteFolder: "Qovluğu sil", + deleteFolderConfirm: "“{name}” və içindəki SQL faylları silinsin?", + open: "SQL-i aç", + copyFile: "SQL-i kopyala", + pasteFile: "SQL-i yerləşdir", + copied: "{count} SQL faylı kopyalandı", + pasted: "{count} SQL faylı yerləşdirildi", + nothingToPaste: "Yerləşdiriləcək SQL faylı yoxdur", + pasteFailed: "SQL-i yerləşdirmək mümkün olmadı: {message}", + renameFile: "SQL-in adını dəyiş", + renameFailed: "SQL-in adını dəyişmək mümkün olmadı: {message}", + nameConflict: 'Bu yerdə "{name}" adlı SQL artıq mövcuddur', + deleteFile: "SQL-i sil", + deleteFileConfirm: "“{name}” silinsin?", + createFolderOption: "“{name}” qovluğunu yarat", + folderPlaceholder: "Qovluq seçin", + searchPlaceholder: "Qovluq axtarışı...", + createFolderFailed: "Qovluğu yaratmaq mümkün olmadı: {message}", + }, + sqlLibrary: { + title: "SQL kitabxanası", + storageHelp: "SQL kitabxanasının məzmunu diskdə ayrıca .sql faylları kimi deyil, DBX tətbiq verilənlərində saxlanılır.\nFayl sistemində fayllardan istifadə etmək üçün SQL kitabxanasını ixrac edin.", + unassociated: "Əlaqələndirilməyib", + deletedConnection: "Əlaqə silinib", + openInCurrentDatabase: "Cari verilənlər bazasında aç", + empty: "Hələ yadda saxlanılmış sorğu yoxdur", + emptyFolder: "Boş qovluq", + unfiled: "Qovluğa yerləşdirilməyib", + exportFile: "SQL-i ixrac et", + exportFolder: "Qovluğu ixrac et", + exportLibrary: "SQL kitabxanasını ixrac et", + importDirectory: "Yerli qovluğu idxal et", + importIntoFolder: "Qovluğa idxal et", + openStorageDirectory: "SQL saxlama qovluğunu aç", + chooseSyncDirectory: "Yerli sinxronizasiya qovluğunu təyin et", + disableSyncDirectory: "Yerli sinxronizasiya qovluğunu deaktiv et", + syncDirectorySaved: "SQL üçün yerli sinxronizasiya qovluğu yadda saxlanıldı", + syncDirectoryDisabled: "SQL üçün yerli sinxronizasiya deaktiv edildi", + syncDirectoryFailed: "Sinxronizasiya qovluğunu təyin etmək mümkün olmadı: {message}", + openDirectoryFailed: "Qovluğu açmaq mümkün olmadı: {message}", + noSyncDirectory: "Əvvəlcə yerli sinxronizasiya qovluğunu təyin edin", + exported: "İxrac edildi", + exportFailed: "İxrac mümkün olmadı: {message}", + importFailed: "İdxal mümkün olmadı: {message}", + importNone: "Seçilmiş qovluqda .sql faylı tapılmadı", + imported: "{count} SQL faylı idxal edildi", + desktopOnly: "Bu funksiya yalnız masaüstü tətbiqdə mövcuddur", + noConnection: "İdxal üçün əlaqə yoxdur", + batchDelete: "Toplu sil", + batchDeleteConfirm: "Seçilmiş {count} elementi silmək istədiyinizə əminsiniz? Bu əməliyyatı geri qaytarmaq mümkün deyil.", + batchDeleteSuccess: "{count} element uğurla silindi", + moveToFolder: "Qovluğa köçür...", + moveSelectedToFolder: "{count} SQL-i qovluğa köçür...", + moveSuccess: "{count} SQL faylı köçürüldü", + moveFailed: "SQL-i köçürmək mümkün olmadı: {message}", + clearSelection: "Seçimi təmizlə", + sortByDate: "Dəyişiklik tarixinə görə sırala", + sortByFolder: "Qovluq quruluşuna görə sırala", + collapseAll: "Hamısını yığ", + }, + + connection: { + title: "Yeni əlaqə", + name: "Ad", + namePlaceholder: "Əlaqənin adı, boş olarsa avtomatik yaradılır", + note: "Qeydlər", + noteShow: "Göstər", + noteShowInSidebar: "Qeydi əlaqə siyahısında göstər", + notePlaceholder: "Qeydlərdə parolları açıq mətn şəklində saxlamayın", + type: "Növ", + host: "Host", + addHost: "Host əlavə et", + filePath: "Faylın yolu", + h2FileMode: "Fayl", + h2TcpMode: "TCP", + h2FilePathRequired: "H2 faylının yolu boş ola bilməz", + createDuckDbFile: "DuckDB faylı yarat", + createSqliteFile: "SQLite verilənlər bazası yarat", + memoryDatabasePathHint: "Operativ yaddaşda SQLite və ya DuckDB verilənlər bazası yaratmaq üçün :memory: dəyərindən istifadə edin.", + sqliteCipherKey: "SQLite şifrələmə açarı", + sqliteCipherKeyPlaceholder: "Şifrələnməmiş SQLite üçün boş saxlayın", + sqliteExtensions: "SQLite genişlənmələri", + sqliteExtensionsPlaceholder: "/path/to/regexp.dylib\n/path/to/text.dylib|sqlite3_text_init", + sqliteExtensionsHint: "Hər sətirdə bir .dylib/.so/.dll faylı. Giriş nöqtəsi tələb olunduqda “yol|giriş nöqtəsi” formatından istifadə edin. Əlaqə qurularkən yüklənir, sonra load_extension deaktiv edilir.", + initScript: "Başlanğıc skripti", + initScriptPlaceholder: "INSTALL quack;\nLOAD quack;\nATTACH 'quack:host' AS remote (TOKEN '...');", + initScriptHint: "SQL əmrləri əlaqə hər dəfə açıldıqda icra edilir (INSTALL/LOAD, SET, CREATE SECRET, ATTACH ...). Burada qoşulan verilənlər bazaları yan paneldə görünür.", + sqliteExtensionBrowse: "SQLite genişlənməsi seçin", + user: "İstifadəçi", + password: "Parol", + dynamodbEndpoint: "Son nöqtə", + dynamodbRegion: "Region", + dynamodbAccessKeyId: "Giriş açarının ID-si", + dynamodbSecretAccessKey: "Gizli giriş açarı", + dynamodbSessionToken: "Sessiya tokeni", + dynamodbSessionTokenPlaceholder: "İstəyə bağlı", + dynamodbCredentialsRequired: "DynamoDB üçün giriş açarının ID-si və gizli giriş açarı tələb olunur", + savePassword: "Parolu yadda saxla", + savePasswordHint: "Parol yadda saxlanılır, buna görə onu yenidən daxil etməyinizə ehtiyac olmayacaq.", + savePasswordSessionHint: "Parol yalnız bu sessiya üçün saxlanılır və tətbiqdən çıxdıqda silinir.", + disconnectAndForgetPassword: "Əlaqəni kəs və parolu unut", + passwordForgotten: "Parol unuduldu. Yenidən əlaqə qurarkən parol təkrar istəniləcək.", + promptPasswordTitle: "Parolu daxil edin", + promptPasswordMessage: "“{connection}” əlaqəsi üçün parolu daxil edin. Parol boşdursa, birbaşa əlaqə qurun.", + promptPasswordPlaceholder: "Parol", + promptPasswordSubmit: "Əlaqə qur", + promptPasswordCancel: "Ləğv et", + promptRememberPassword: "Parolu yadda saxla", + rememberPasswordSaveFailed: "Əlaqə quruldu, lakin DBX parolu yadda saxlaya bilmədi: {message}", + mysqlMissingPasswordHint: "Verilənlər bazasının parolu göndərilmədi. Parolu daxil edin və yenidən cəhd edin.", + database: "Verilənlər bazası", + databasePlaceholder: "İstəyə bağlı", + databasePlaceholderRequired: "Tələb olunur, mövcud verilənlər bazasını daxil edin", + databasePlaceholderWithDefault: "İstəyə bağlı, standart olaraq {database}", + kingbaseDatabaseRequired: "KingbaseES əlaqə qurmazdan və ya verilənlər bazası siyahısını yükləməzdən əvvəl mövcud verilənlər bazası tələb edir.", + defaultDatabase: "Standart verilənlər bazası", + authDatabase: "Autentifikasiya verilənlər bazası", + authDatabasePlaceholder: "İstəyə bağlı, adətən admin", + authMechanism: "Autentifikasiya mexanizmi", + authMechanismDefault: "Standart", + oidcBrowserAuthHint: "Autentifikasiya sistem brauzerinizdə açılır. Verilənlər bazasının parolu tələb olunmur.", + driverMode: "Drayver", + mongoDriverAuto: "Avtomatik", + mongoDriverLegacy: "Köhnə", + serviceName: "Xidmət/SID", + serviceNameOnly: "Xidmətin adı", + oracleTnsAlias: "Şəbəkə ləqəbi", + oracleTnsAliasPlaceholder: "tnsnames.ora faylındakı ləqəb", + oracleTnsAdminPlaceholder: "tnsnames.ora olan qovluq", + oracleTnsAdminBrowse: "tnsnames.ora faylını seçin", + oracleTnsPathHint: "Bu yolu DBX server hissəsi/Oracle agenti oxuyur. Masaüstü yollar yerlidir; veb və Docker yolları serverdədir.", + oracleTnsAliasRequired: "Oracle TNS rejimi şəbəkə ləqəbi tələb edir.", + oracleTnsAdminRequired: "Oracle TNS rejimi tnsnames.ora faylını ehtiva edən TNS_ADMIN qovluğunu tələb edir.", + oracleTnsTransportUnsupported: "Oracle TNS əlaqələri SSH, proksi və ya HTTP tunel qatlarından istifadə edə bilməz. Nəqliyyat qatını çıxarın və ya xidmət adı/SID rejimindən istifadə edin.", + igniteVersion: "Ignite versiyası", + elasticsearchDirectMode: "Birbaşa", + elasticsearchKibanaProxyMode: "Kibana proksisi", + elasticsearchKibanaHost: "Kibana hostu", + elasticsearchKibanaBasePath: "Əsas yol", + elasticsearchConnectivityCheckPath: "Əlaqə yoxlama yolu", + elasticsearchConnectivityCheckPathPlaceholder: "/ və ya /my-index/_search", + elasticsearchConnectivityCheckDisabled: "Əlaqə yoxlamasını deaktiv et", + elasticsearchConnectivityCheckDisabledHint: "Aktiv olduqda əlaqə qurma və sınaq əməliyyatları yoxlama sorğusunu ötürür və serveri əlçatan hesab edir. Hesabın kök yola və heç bir yoxlama yoluna icazəsi olmadıqda və ya klasterlərdə icazələr fərqli olduqda istifadə edin.", + elasticsearchIndexGroupingPattern: "İndeksləri qruplaşdırmaq üçün müntəzəm ifadə", + elasticsearchIndexGroupingPatternPlaceholder: "standart olaraq deaktivdir; aktiv etmək üçün müntəzəm ifadə daxil edin", + elasticsearchIndexGroupingPatternHint: "Standart olaraq deaktivdir (adlandırma sxemləri fərqlənir). Aktiv etmək üçün müntəzəm ifadə daxil edin: uyğun gələn dövri və ya zaman sırası indeksləri gündəlik təfərrüatları gizlətməklə sorğulana bilən bir ümumiləşdirici şablonda birləşdirilir.", + version: "Versiya", + victoriametricsApiPath: "API yolu", + victoriametricsApiPathHint: "Tək qovşaqlı quraşdırmalar üçün /prometheus, klasterlər üçün isə /select/tenantID/prometheus yolundan istifadə edin.", + victoriametricsLookback: "Metaverilənlər üçün geriyə baxış müddəti", + victoriametricsLookbackHint: "Metriklərin aşkarlanması və etiket sütunları üçün istifadə olunur, məsələn, 1h və ya 7d. Metrik önbaxışlarında 1h istifadə olunur və bu dəyər redaktə edilə bilər.", + victoriametricsInvalidApiPath: "VictoriaMetrics API yolu boş olmalı və ya / ilə başlamalıdır.", + victoriametricsInvalidLookback: "VictoriaMetrics üçün geriyə baxış müddəti etibarsızdır. 15m, 1h və ya 7d kimi dəyərdən istifadə edin.", + driverInstallHintPrefix: "Tələb olunan drayveri ", + driverInstallHintSuffix: " bölməsindən, yuxarı alətlər panelində əlaqə qurmazdan əvvəl quraşdırın.", + driverName: "Drayverin adı", + driverNamePlaceholder: "Təchizatçının və ya mühitin adı", + urlParams: "URL parametrləri", + localInfilePathHint: "LOAD DATA LOCAL INFILE üçün hər faylı localInfilePath=/absolute/path/file.csv ilə ayrıca icazə siyahısına əlavə edin. Əlavə fayllar üçün parametri təkrarlayın.", + d1AccountId: "Hesabın ID-si", + d1DatabaseId: "Verilənlər bazasının ID-si", + d1ApiToken: "API tokeni", + d1TokenHint: "Token üçün D1 Read icazəsi lazımdır; yazma, DDL və idxal əməliyyatları üçün D1 Write da tələb olunur.", + d1FieldsRequired: "Cloudflare hesabının ID-si, D1 verilənlər bazasının ID-si və API tokeni tələb olunur.", + spannerStructuredMode: "Resurs ID-ləri", + spannerResourcePathMode: "Resursun yolu", + spannerProject: "Layihənin ID-si", + spannerInstance: "İnstansiyanın ID-si", + spannerDatabase: "Verilənlər bazasının ID-si", + spannerResourcePathHint: "projects/my-project/instances/my-instance/databases/my-database", + spannerHostHint: "Google Cloud üçün hostu boş saxlayın. Yerli emulyator üçün hostu localhost, portu isə 9010 təyin edin; özünə yönləndirmə hostları üçün açıq mətnli gRPC avtomatik aktiv edilir.", + spannerCredentialsHint: "Autentifikasiya Application Default Credentials sistemindən istifadə edir. Xidmət hesabının açar faylından istifadə etmək üçün URL parametrlərinə credentials=/path/key.json əlavə edin.", + spannerFieldsRequired: "Cloud Spanner layihəsi, instansiyası və verilənlər bazası tələb olunur.", + hiveAuthMode: "Autentifikasiya", + hiveAuthNone: "Yoxdur", + hivePrincipal: "Subyekt", + hiveKerberosPrincipalRequired: "Kerberos subyekti tələb olunur", + hiveKrb5ConfBrowse: "krb5.conf faylını seçin", + hiveJaasConfigBrowse: "JAAS konfiqurasiyasını seçin", + hiveTicketCache: "Bilet keşi", + hiveTicketCacheFallback: "useSubjectCredsOnly=false təyin et", + hiveJvmOptions: "JVM seçimləri", + hiveJvmOptionsPlaceholder: "-Dsun.security.krb5.debug=true", + gbaseServer: "GBASEDBTSERVER", + gbaseServerHint: "Serverin DBSERVERNAME və ya DBSERVERALIASES dəyərinə uyğun gəlməlidir.", + gbaseServerMismatch: "GBASEDBTSERVER serverin DBSERVERNAME və ya DBSERVERALIASES dəyərinə uyğun gəlmədiyi üçün GBase 8s əlaqəsi qurulmadı. GBASEDBTSERVER sahəsinə faktiki server adını daxil edin.", + informixServer: "INFORMIXSERVER", + sslEnable: "Şifrəli əlaqəni aktiv et", + caCertPath: "CA sertifikatı", + caCertPathPlaceholder: "İstəyə bağlı, məsələn, ~/.yandex/RootCA.crt", + caCertPathBrowse: "Sertifikat seç", + damengSslFilesPath: "Sertifikat qovluğu", + damengSslFilesPathPlaceholder: "/path/to/dmcert", + damengSslFilesPathBrowse: "Sertifikat qovluğunu seçin", + damengSslKeystorePassword: "Açar anbarının parolu", + damengSslHint: "DM8 JDBC SSL sertifikatlarını bu qovluqdan oxuyur və hər iki sahəni URL parametrləri vasitəsilə ötürür.", + damengSslProtocol: "SSL protokolu", + damengSslProtocolPlaceholder: "İstəyə bağlı, məsələn, TLSv1.2", + damengSslVerificationHint: "Sertifikatın yoxlanılması DM8 serverinin ENABLE_ENCRYPT parametri ilə idarə olunur. 5-ci rejim server sertifikatını yoxlayır; 4-cü rejim sertifikatı yoxlamadan şifrələyir.", + damengJvmOptions: "JVM sistem xassələri", + damengJvmOptionsPlaceholder: "-Djava.net.preferIPv4Stack=true", + damengJvmOptionsHint: "Hər sətirdə bir -Dkey və ya -Dkey=value. Boşluq olan dəyərlərin əmr qabığının dırnaqlarına ehtiyacı yoxdur.", + damengJvmOptionsInvalid: "{line} sətri əmr qabığının dırnaqları olmadan -Dkey və ya -Dkey=value sistem xassəsi olmalıdır.", + damengBuiltinDriver: "Daxil edilmiş DM8", + damengCustomDriver: "DM6 / fərdi JAR", + damengDriverModeHint: "DM8 üçün daxil edilmiş drayverdən istifadə edin. DM6 və ya başqa uyğun versiya üçün onun rəsmi JDBC JAR faylını seçin.", + damengCustomDriverHint: "Lisenziyalı mənbədən Dameng JDBC JAR faylı seçin. Fərdi drayver Dameng agenti daxilində təcrid olunur və ümumi JDBC plaginini tələb etmir.", + damengCustomDriverRequired: "Dameng JDBC drayverinin JAR faylını seçin.", + redisTlsInsecure: "Sertifikat yoxlamasını ötür", + redisTlsInsecureHint: "Öz imzalı sertifikatlar və ya özəl CA-lar üçün redis-cli --tls --insecure əmrinə bərabərdir.", + mysqlTlsMode: "TLS rejimi", + mysqlTlsModePreferred: "Üstün tutulan", + mysqlTlsModeDisabled: "Deaktiv", + mysqlTlsModeRequired: "Tələb olunur", + mysqlTlsModeVerifyCa: "CA-nı yoxla", + mysqlTlsModeVerifyIdentity: "Kimliyi yoxla", + mysqlCleartextPasswordAuth: "Açıq mətnli parolla autentifikasiya", + mysqlCleartextPasswordAuthHint: "Yalnız MySQL serveri açıq mətnli parol autentifikasiyası plaginini tələb etdikdə aktiv edin.", + mysqlCaCertHint: "Server sertifikatı özəl CA-dan istifadə etdikdə CA-nı yoxlama və kimliyi yoxlama rejimləri üçün tələb olunur.", + mysqlClientCert: "Müştəri autentifikasiyası", + mysqlClientCertPlaceholder: "/path/to/client.crt", + mysqlClientKeyPlaceholder: "/path/to/client.key", + mysqlClientCertHint: "MySQL mTLS tələb etdikdə müştəri sertifikatı və məxfi açar birlikdə təqdim edilməlidir.", + mysqlTlsConnectionFailureHint: "MySQL serveri TLS tələb etmirsə, əlaqəni redaktə edin, TLS rejimini deaktiv edin və yenidən cəhd edin.", + mysqlUnsupportedCertVersionHint: "Ciddi yoxlama bu server sertifikatı versiyasını dəstəkləmir. Onu X.509 v3 sertifikatı ilə əvəz edin və ya yalnız etibarlı şəbəkədə məcburi rejimdən istifadə edin.", + mysqlClientCertBrowse: "Müştəri sertifikatını seçin", + mysqlClientKeyBrowse: "Müştərinin məxfi açarını seçin", + postgresSslMode: "TLS rejimi", + postgresSslModeDisable: "Deaktiv et", + postgresSslModePrefer: "Üstün tut", + postgresSslModeRequire: "Tələb et", + postgresSslModeVerifyCa: "CA-nı yoxla", + postgresSslModeVerifyFull: "Tam yoxla", + postgresLegacyTls: "Köhnə TLS ilə uyğunluq", + postgresLegacyTlsHint: "TLS 1.2 statik RSA açar mübadiləsi ilə məhdudlaşan serverləri dəstəkləyir. Bu, standart rejimdən daha az təhlükəsizdir; yalnız serverin TLS konfiqurasiyasını yeniləmək mümkün olmadıqda aktiv edin.", + postgresServerCert: "Serverin CA-sı", + postgresRootCertPlaceholder: "/path/to/ca.crt", + postgresRootCertHint: "Server sertifikatı özəl CA tərəfindən imzalandıqda verify-ca və ya verify-full üçün bunu istifadə edin.", + postgresRootCertBrowse: "CA sertifikatını seçin", + postgresClientCert: "Müştəri autentifikasiyası", + postgresClientCertPlaceholder: "/path/to/client.crt", + postgresClientKeyPlaceholder: "/path/to/client.key", + postgresClientCertHint: "PostgreSQL mTLS tələb etdikdə müştəri sertifikatı və məxfi açar birlikdə təqdim edilməlidir.", + postgresClientCertBrowse: "Müştəri sertifikatını seçin", + postgresClientKeyBrowse: "Müştərinin məxfi açarını seçin", + connectionUrlOptional: "URL (istəyə bağlı)", + connectionUrlPlaceholder: "postgresql://user:pass{'@'}host:5432/db?sslmode=require", + parseConnectionUrl: "Əlaqə URL-ini təhlil et", + parseConnectionUrlApplied: "Əlaqə URL-i tətbiq edildi", + parseConnectionUrlFailed: "Əlaqə URL-ini təhlil etmək mümkün olmadı: {message}", + mode: "Əlaqə rejimi", + modeForm: "Forma", + redisStandaloneMode: "Müstəqil", + redisSentinelMode: "Sentinel", + redisClusterMode: "Klaster", + oceanbaseMySQLMode: "MySQL rejimi", + oceanbaseOracleMode: "Oracle rejimi", + redisFirstSentinel: "İlk Sentinel", + redisFirstClusterNode: "İlk başlanğıc qovşağı", + redisSentinelNodes: "Sentinel qovşaqları", + redisClusterNodes: "Klasterin başlanğıc qovşaqları", + redisSentinelMaster: "Əsas qovşağın adı", + redisSentinelUser: "Sentinel istifadəçisi", + redisSentinelPassword: "Sentinel parolu", + redisSentinelTls: "Sentinel TLS", + redisSentinelTlsHint: "Sentinel qovşaqları ilə əlaqə qurarkən TLS-dən istifadə et", + redisKeySeparator: "Açar ad fəzasının ayırıcısı", + redisKeyTemplates: "Açar axtarış şablonları", + redisKeyTemplatesPlaceholder: "Nümunə:\nuser:{'{'}$userId{'}'}\nv3:adui:{'{'}$positionID{'}'}", + redisKeyTemplatesHint: "Hər sətirdə bir şablon. Təyin edildikdə bunlar bu əlaqə üçün qlobal Redis açar şablonlarını əvəz edir.", + etcdEndpoints: "Son nöqtələr", + etcdEndpointsHint: "Hər sətirdə bir son nöqtə. Yuxarıdakı host və portdan istifadə etmək üçün boş saxlayın.", + etcdV2ApiHint: "v2 API yalnız etcd 2.x və ya --enable-v2 ilə başladılmış etcd 3.0–3.5 versiyalarında mövcuddur. Açar tarixçəsi, icarələr, sıxlaşdırma və defraqmentasiya mövcud deyil.", + etcdGrpcMaxInbound: "gRPC qəbul limiti (MiB)", + etcdGrpcMaxInboundHint: "Bir etcd cavabının maksimum ölçüsü. Standart olaraq 32 MiB-dir və 256 MiB ilə məhdudlaşır.", + etcdCaCertPlaceholder: "/path/to/ca.crt", + etcdCaCertBrowse: "CA sertifikatını seçin", + etcdClientAuth: "Müştəri autentifikasiyası", + etcdClientCertPlaceholder: "/path/to/client.crt", + etcdClientKeyPlaceholder: "/path/to/client.key", + etcdClientCertHint: "etcd mTLS tələb etdikdə müştəri sertifikatı və məxfi açar birlikdə təqdim edilməlidir.", + etcdClientCertBrowse: "Müştəri sertifikatını seçin", + etcdClientKeyBrowse: "Müştərinin məxfi açarını seçin", + etcdClientCertPairRequired: "Müştəri sertifikatı və məxfi açar birlikdə təqdim edilməlidir.", + consulAddress: "Consul API ünvanı", + consulAddressInvalid: "Giriş məlumatları, sorğu parametrləri və fraqment olmadan mütləq HTTP və ya HTTPS Consul API ünvanı daxil edin.", + consulToken: "ACL tokeni", + consulTokenPlaceholder: "İstəyə bağlı Consul ACL tokeni", + consulDatacenter: "Verilənlər mərkəzi", + consulNamespace: "Ad fəzası", + consulPartition: "İnzibati bölmə", + consulAgentTargetNode: "Agentin hədəf qovşağı", + consulAgentTargetAddress: "Agentin birbaşa ünvanı", + consulAgentTargetHint: "Agentin yazma əməliyyatları üçün tələb olunur. DNS/yük tarazlaşdırıcılı və nəqliyyat qatı son nöqtələri yalnız oxuma üçün qalır.", + consulMeshFeatures: "Xidmət şəbəkəsi", + consulMeshVisible: "Təkmil xidmət şəbəkəsi iş sahəsini göstər", + consulMeshVisibleHint: "Yalnız Connect, niyyətlər və ya həmyaşıd əlaqələrini idarə etmək üçün aktiv edin. Deaktiv olduqda iş sahəsi gizli qalır.", + consulOperatorWrites: "Operator yazma əməliyyatları", + consulOperatorVisible: "Təcrübi Operator iş sahəsini göstər", + consulOperatorSnapshotRestore: "Ani görüntüdən bərpanı aktiv et", + consulOperatorAutopilot: "Autopilot yeniləmələrini aktiv et", + consulOperatorRaft: "Raft dəyişikliklərini aktiv et", + consulOperatorKeyring: "Açar dəsti dəyişikliklərini aktiv et", + consulOperatorLicense: "Lisenziya yeniləmələrini aktiv et", + consulAgentTargetIncomplete: "Agentin hədəf qovşağı və birbaşa ünvanı birlikdə konfiqurasiya edilməlidir.", + consulAgentTargetAddressMismatch: "Agentin birbaşa ünvanı Consul son nöqtəsinin hostuna uyğun gəlməlidir.", + consulConsistency: "Oxuma ardıcıllığı", + consulConsistencyDefault: "Standart", + consulConsistencyStale: "Köhnəlmiş", + consulConsistencyConsistent: "Ardıcıl", + consulTlsSkipVerify: "Sertifikat yoxlamasını ötür", + consulTlsSkipVerifyHint: "Yalnız etibarlı, öz imzalı sertifikatlı Consul son nöqtələri üçün istifadə edin.", + zookeeperConnectString: "Əlaqə sətri", + zookeeperConnectStringHint: "Vergül və ya yeni sətirlə ayrılmış host:port qeydləri, istəyə bağlı ortaq /chroot ilə. Yuxarıdakı host və portdan istifadə etmək üçün boş saxlayın.", + zookeeperClusterInputHint: "ZooKeeper qovşaqlar toplusu üçün bütün qovşaqları ya URL-ə (məsələn, zookeeper://zk-1:2181,zk-2:2181/app), ya da aşağıdakı əlaqə sətrinə daxil edin.", + zookeeperAuthMethod: "Autentifikasiya", + zookeeperAuthDigest: "Digest (standart)", + zookeeperAuthSaslDigest: "SASL DIGEST-MD5", + zookeeperCreateModePersistent: "Daimi", + zookeeperCreateModeEphemeral: "Müvəqqəti", + zookeeperCreateModePersistentSequential: "Daimi ardıcıl", + zookeeperCreateModeEphemeralSequential: "Müvəqqəti ardıcıl", + nacosConsoleUrl: "Nacos idarəetmə ünvanı", + nacosConsoleUrlHint: "Seçilmiş Nacos profilinə uyğun ünvandan istifadə edin. Tam brauzer və API URL-ləri qəbul edilir.", + nacosConsoleUrlRequired: "Nacos idarəetmə ünvanı tələb olunur", + nacosConsoleUrlAutoAdjusted: "Nacos konsolunun URL-i {from} ünvanından {to} ünvanına dəyişdirildi.", + nacosWebConsoleUrl: "Nacos veb konsolunun URL-i", + nacosWebConsoleUrlHint: "İstəyə bağlı. Nacos konsolunu brauzerinizdə açır. Nacos 3 ayrıca veb konsol ünvanını tələb edir; brauzerə birbaşa giriş lazımdır və o, DBX tunellərindən və ya API autentifikasiyasından təkrar istifadə etmir.", + nacosWebConsoleUrlInvalid: "Nacos veb konsolunun URL-i daxilində giriş məlumatları olmayan etibarlı HTTP və ya HTTPS URL-i olmalıdır.", + nacosRNacosOpenApiAutoAdjusted: "r-nacos OpenAPI-yə keçildi: {from} → {to} (kontekst yolu: /nacos).", + nacosImplementation: "Xidmətin reallaşdırılması", + nacosVersion: "Nacos versiyası", + nacosVersionAuto: "Avtomatik aşkarlama", + nacosPrimaryAddressRNacos: "Nacos ilə uyğun API ünvanı", + nacosPrimaryAddressV2: "Xidmət ünvanı (API və konsol üçün ortaq)", + nacosPrimaryAddressV3: "Server / inzibati API ünvanı", + nacosPrimaryAddressAuto: "Nacos idarəetmə ünvanı", + nacosPrimaryAddressHint: "Nacos 3 üçün 8080 portundakı konsol əvəzinə server / inzibati API ünvanından (adətən http://host:8848/nacos) istifadə edin; fərdi proksi prefiksləri saxlanılır.", + nacosRequestsUse: "Sorğular {address}/… ünvanından istifadə edəcək", + nacosNamespace: "Ad fəzası", + nacosContextPath: "Kontekst yolu", + nacosContextPathPlaceholder: "Boş saxlayın və ya /nacos daxil edin", + nacosContextPathRestoreAuto: "Avtomatik rejimi bərpa et", + nacosConfigurationHistory: "Konfiqurasiya tarixçəsi", + nacosConfigurationHistoryEnable: "Konfiqurasiya tarixçəsini aktiv et", + nacosConfigurationHistoryHint: + "r-nacos konfiqurasiya tarixçəsi yalnız onun müstəqil konsolu (adətən 10848 portu) vasitəsilə mövcuddur. Konsolun giriş sessiyası Nacos ilə uyğun OpenAPI-dən ayrıdır: OpenAPI autentifikasiya tələb etməsə də, konsol tələb edə bilər. Xüsusi olaraq başqa hesaba ehtiyacınız yoxdursa, eyni r-nacos istifadəçi hesabından istifadə edin.", + nacosRNacosConsoleUrl: "r-nacos konsolunun URL-i", + nacosRNacosConsoleUrlPlaceholder: "http://127.0.0.1:10848", + nacosRNacosConsoleUrlHint: "İstəyə bağlı. OpenAPI URL-i əvəzinə müstəqil konsolun URL-indən (adətən 10848 portu) istifadə edin; bu, konfiqurasiya tarixçəsini aktiv edir və r-nacos konfiqurasiya növlərini və təsvirlərini oxuyur.", + nacosRNacosOpenApiRequired: "r-nacos əsas ünvanı müstəqil konsolun URL-i əvəzinə Nacos ilə uyğun API-dən istifadə etməlidir.", + nacosRNacosConsoleUrlRequired: "r-nacos konfiqurasiya tarixçəsi üçün konsol URL-i tələb olunur.", + nacosConsoleAuthSeparateRequired: "Əsas autentifikasiya yoxdur; konsol üçün ayrıca giriş məlumatlarını konfiqurasiya edin.", + nacosAuth: "Autentifikasiya", + nacosAuthNone: "Yoxdur", + nacosAuthUserPassword: "İstifadəçi / parol", + nacosConsoleAuthentication: "Konsol autentifikasiyası", + nacosConsoleAuthInherit: "Əsas giriş məlumatlarından istifadə et", + nacosConsoleAuthSeparate: "Ayrıca giriş məlumatları", + nacosConsoleAuthPrimaryNone: "Əsas autentifikasiya yoxdur; konsol üçün ayrıca giriş məlumatlarından istifadə edin.", + nacosConsoleUser: "Konsol istifadəçisi", + nacosConsolePassword: "Konsol parolu", + nacosConsoleUsernameRequired: "r-nacos konsolunun istifadəçi adı tələb olunur", + nacosUsernameRequired: "Nacos istifadəçi adı tələb olunur", + nacosTls: "TLS", + nacosTlsSkipVerify: "Sertifikat yoxlamasını ötür", + nacosPageSize: "Səhifə ölçüsü", + nacosMetrics: "Prometheus metrikləri", + nacosMetricsAuto: "Avtomatik aşkarlama", + nacosMetricsDisabled: "Deaktiv", + nacosMetricsCustom: "Fərdi URL", + nacosMetricsAutoHint: "Bu ardıcıllıqla sınanıb: {addresses}", + nacosMetricsUrl: "Metriklərin URL-i", + nacosMetricsUrlInvalid: "Giriş məlumatları və fraqment olmadan mütləq HTTP və ya HTTPS Prometheus metrikləri URL-i daxil edin.", + kafkaKerberosPrincipal: "Subyekt", + kafkaKerberosKeytab: "Keytab", + kafkaKerberosServiceName: "Xidmətin adı", + kafkaKerberosKrb5Conf: "krb5.conf", + kafkaKerberosPrincipalRequired: "Kafka Kerberos subyekti tələb olunur", + kafkaKerberosKeytabRequired: "Kafka Kerberos keytab yolu tələb olunur", + kafkaKerberosKeytabBrowse: "Keytab seçin", + kafkaKerberosKrb5ConfBrowse: "krb5.conf seçin", + kafkaKerberosKeytabPlaceholder: "DBX Agent maşınındakı yol, məsələn, /etc/security/keytabs/user.keytab", + kafkaKerberosKrb5ConfPlaceholder: "DBX Agent maşınında istəyə bağlı yol, məsələn, /etc/krb5.conf", + kafkaKerberosPathHint: "keytab və krb5.conf yolları DBX Agent tərəfindən oxunur və DBX Agent-in işlədiyi maşında mövcud olmalıdır; fayllar bu brauzerdən yüklənmir.", + kafkaKerberosAuthHint: "GSSAPI + keytab girişindən istifadə edir. Server şifrəli nəqliyyat tələb edirsə, təhlükəsizliyi SASL_SSL olaraq təyin edin; əks halda avtomatik rejim və ya SASL_PLAINTEXT istifadə edilə bilər.", + mqSystem: "Sistem", + mqSystemPulsar: "Apache Pulsar", + mqSystemKafka: "Apache Kafka", + mqSystemRocketMq: "Apache RocketMQ", + rocketmqNamesrvAddr: "NameServer ünvanı", + rocketmqNamesrvAddrPlaceholder: "127.0.0.1:9876", + rocketmqNamesrvAddrRequired: "RocketMQ NameServer ünvanı tələb olunur", + rocketmqNamesrvAddrInvalid: "RocketMQ NameServer ünvanı etibarsızdır", + rocketmqClusterName: "Klasterin adı", + rocketmqClusterNamePlaceholder: "İstəyə bağlı, məsələn, DefaultCluster", + rocketmqAccessKey: "Giriş açarı", + rocketmqSecretKey: "Gizli açar", + rocketmqAclAuth: "ACL", + mqBootstrapServers: "Başlanğıc serverləri", + mqBootstrapServersPlaceholder: "127.0.0.1:9092", + mqBootstrapServersRequired: "Kafka başlanğıc serverləri tələb olunur", + mqBootstrapServersInvalid: "Kafka başlanğıc serverləri etibarsızdır", + mqKafkaConnectionSource: "Əlaqə mənbəyi", + mqKafkaConnectionSourceBootstrap: "Başlanğıc serverləri", + mqKafkaConnectionSourceZooKeeper: "ZooKeeper (Kafka 1.x)", + mqKafkaZooKeeperServers: "ZooKeeper serverləri", + mqKafkaZooKeeperServersPlaceholder: "zk1:2181,zk2:2181/kafka", + mqSystemRabbitMq: "RabbitMQ", + mqRabbitmqAddresses: "Ünvanlar", + mqRabbitmqAddressesPlaceholder: "127.0.0.1:5672", + mqRabbitmqAddressesRequired: "RabbitMQ ünvanları tələb olunur", + mqRabbitmqAddressesInvalid: "RabbitMQ ünvanlarını amqp:// olmadan host:port formatında daxil edin (məsələn, 127.0.0.1:5672)", + mqVirtualHost: "Virtual host", + mqVirtualHostPlaceholder: "/", + mqRabbitmqAdminUrl: "İdarəetmə URL-i", + mqRabbitmqAdminUrlPlaceholder: "http://192.168.1.1:15672", + mqRabbitmqAdminUrlHint: "Yalnız standart AMQP portu üçün boş saxlayın; xüsusi AMQP portları ayrıca konfiqurasiya edilmiş İdarəetmə API-sinin URL-ini tələb edir. https://proxy/rmq kimi əks proksi yolları dəstəklənir", + mqRabbitmqUsernamePlaceholder: "Standart dəyər guest-dir", + mqRabbitmqPasswordPlaceholder: "Standart dəyər guest-dir", + mqSecurity: "Təhlükəsizlik", + mqSecurityAuto: "Avtomatik", + mqAdminUrl: "İnzibatçı URL-i", + mqAdminUrlRequired: "MQ inzibatçı URL-i tələb olunur", + mqAdminUrlInvalid: "MQ inzibatçı URL-i etibarsızdır", + mqAuth: "Kimlik doğrulaması", + mqAuthNone: "Yoxdur", + mqAuthToken: "Token", + mqAuthBasic: "Əsas", + mqAuthKerberos: "Kerberos", + mqAuthApiKey: "API açarı", + mqAuthOauth2: "OAuth2", + mqToken: "Token", + mqSaslMechanism: "SASL mexanizmi", + mqApiKeyHeader: "Başlıq", + mqApiKeyValue: "Dəyər", + mqOauthIssuerUrl: "Təminatçının URL-i", + mqOauthClientId: "Müştəri ID-si", + mqOauthClientSecret: "Müştərinin məxfi açarı", + mqOauthAudience: "Auditoriya", + mqOauthScope: "Əhatə dairəsi", + mqOauthIssuerRequired: "OAuth2 kimlik doğrulaması üçün təminatçının URL-i tələb olunur", + mqOauthClientIdRequired: "OAuth2 kimlik doğrulaması üçün müştəri ID-si tələb olunur", + mqOauthClientSecretRequired: "OAuth2 kimlik doğrulaması üçün müştərinin məxfi açarı tələb olunur", + mqTls: "TLS", + mqTlsSkipVerify: "Sertifikatın yoxlanmasını ötür", + mqPinnedVersion: "Sabitlənmiş versiya", + mqTokenSigning: "Broker tokeninin imzalanması", + mqTokenSigningNone: "Konfiqurasiya edilməyib", + mqTokenSigningKey: "İmzalama açarı", + mqTokenSigningKeyRequired: "Broker tokeninin imzalama açarı tələb olunur", + mqTokenSigningKeyPlaceholderHs256: "Brokerin SECRET dəyəri", + mqTokenSigningKeyPlaceholderRs256: "-----BEGIN PRIVATE KEY-----", + mqTokenSigningHint: "Brokerin jwt.broker.token.mode dəyərinə əsasən seçin: SECRET HS256-dan, PRIVATE isə RS256-dan istifadə edir. Açar əlaqənin məxfi məlumatları ilə birlikdə saxlanılır.", + mqttBrokerAddress: "Broker ünvanı", + mqttBrokerAddressPlaceholder: "127.0.0.1", + mqttBrokerPort: "Port", + mqttClientId: "Müştəri ID-si", + mqttClientIdPlaceholder: "Avtomatik yaradılır", + mqttUsername: "İstifadəçi adı", + mqttUsernamePlaceholder: "İstəyə bağlı", + mqttPassword: "Parol", + mqttAuthCertificate: "Müştəri sertifikatı", + mqttCaCertPath: "CA sertifikatının yolu", + mqttClientCertPath: "Müştəri sertifikatının yolu", + mqttClientKeyPath: "Müştərinin şəxsi açarının yolu", + mqttPasswordPlaceholder: "İstəyə bağlı", + mqttTls: "TLS", + mqttTlsSkipVerify: "Sertifikatın yoxlanmasını ötür", + mqttKeepAlive: "Əlaqənin canlı saxlanması (saniyə)", + mqttProtocolVersion: "Protokol versiyası", + mqttTransport: "Nəqliyyat", + mqttTransportTcp: "TCP", + mqttTransportWebSocket: "WebSocket", + mqttWsPath: "WebSocket yolu", + mqttWsPathPlaceholder: "/mqtt", + mqttConnectTimeout: "Əlaqə üçün vaxt limiti (saniyə)", + mqttConsoleTitle: "MQTT konsolu", + mqttTopics: "Mövzular", + mqttMessages: "Mesajlar", + mqttPublish: "Mesajı yayımla", + mqttSubscribe: "Abunə ol", + mqttNoLocal: "Yerli mesajlar olmadan", + mqttUnsubscribe: "Abunəliyi ləğv et", + mqttNoMessages: "Mesaj yoxdur", + mqttNoTopics: "Abunə olunmuş mövzu yoxdur", + mqttQuickSubscribe: "Sürətli abunə ol", + mqttTopicPlaceholder: "Mövzunun adı", + mqttConnected: "Əlaqə qurulub", + mqttDisconnected: "Əlaqə kəsilib", + mqttRefresh: "Yenilə", + mqttPublishDialogTitle: "MQTT mesajını yayımla", + mqttClearMessages: "Mesajları təmizlə", + mqttPauseMessages: "Fasilə ver", + mqttResumeMessages: "Davam et", + mqttHidePublishPanel: "Yayımlama panelini gizlət", + mqttShowPublishPanel: "Yayımlama panelini göstər", + mqttNoTopicsHint: "Abunəlik yoxdur. Mövzuya abunə olmaq üçün aşağıdakı sahədən istifadə edin.", + mqttSubscribePlaceholder: "Mövzu süzgəcini daxil edin...", + mqttMessagesForTopic: "Mesajlar: {topic}", + mqttAllMessages: "Mesajlar (bütün mövzular)", + mqttSent: "Göndərilib", + mqttReceived: "Qəbul edilib", + mqttRetained: "Saxlanılıb", + mqttTopic: "Mövzu", + mqttTopicExample: "məsələn, sensors/temperature", + mqttRetainMessage: "Mesajı saxla", + mqttPayloadEncoding: "Mesaj məzmununun kodlaşdırılması", + mqttPayload: "Mesaj məzmunu", + mqttResizePayload: "Mesaj girişinin ölçüsünü dəyişmək üçün sürükləyin", + mqttPayloadPlaceholderPlaintext: "Mesaj məzmununu daxil edin...", + mqttPayloadPlaceholderJson: "JSON daxil edin, məsələn, {example}", + mqttPayloadPlaceholderBase64: "Base64 ilə kodlaşdırılmış məlumatları daxil edin", + mqttPayloadPlaceholderHex: "Onaltılıq məlumatları daxil edin, məsələn, 48 65 6C 6C 6F", + mqttPayloadPlaceholderStructured: "JSON dəyəri daxil edin; o, {encoding} kimi kodlaşdırılacaq", + mqttPublishShortcut: "Yayımlamaq üçün Ctrl+Enter", + mqttPublishTopicRequired: "Mövzu tələb olunur", + mqttPublishTopicWildcard: "Yayımlama mövzularında # və ya + əvəzedici simvolları ola bilməz. Abunəlik süzgəcini konkret mövzu ilə əvəz edin.", + mqttPublishSuccess: "Mesaj yayımlandı", + mqttPublishing: "Yayımlanır...", + mqttQosAtMostOnce: "Ən çox bir dəfə", + mqttQosAtLeastOnce: "Ən azı bir dəfə", + mqttQosExactlyOnce: "Dəqiq bir dəfə", + mqttSubscriptionConfig: "Abunəlik konfiqurasiyası", + mqttNewSubscription: "Yeni abunəlik", + mqttEditSubscription: "Abunəliyi redaktə et", + mqttSearchSubscriptionsPlaceholder: "Abunəlik süzgəclərini axtar...", + mqttSearchPayloadPlaceholder: "Mesaj məzmununda axtar...", + mqttNoMatchingMessages: "Yüklənmiş mesajlardan heç biri bu məzmun süzgəcinə uyğun gəlmir", + mqttNoSavedSubscriptions: 'Yadda saxlanmış abunəlik yoxdur. Əlavə etmək üçün "Yeni abunəlik" düyməsinə klikləyin.', + mqttTopicFilter: "Mövzu süzgəci", + mqttTopicFilterPlaceholder: "məsələn, device/+/status", + mqttTopicFilterHint: "Bir səviyyəli + və çoxsəviyyəli # əvəzedici simvolları dəstəklənir.", + mqttNoLocalMqtt5Only: "Yalnız MQTT 5.0", + mqttEnableSubscription: "Abunəliyi aktivləşdir", + mqttEnableSubscriptionHint: "Yadda saxladıqdan dərhal sonra abunə ol və yenidən əlaqə qurulduqda bərpa et.", + mqttSaving: "Yadda saxlanılır...", + mqttSubscriptionTopicFilterInvalid: "Etibarsız mövzu süzgəci: + bir səviyyəni tutmalı, # isə son səviyyə olmalıdır.", + mqttSubscriptionTopicFilterDuplicate: "Bu mövzu süzgəci artıq mövcuddur.", + mqttSubscriptionNoLocalProtocolError: "Yerli mesajlar olmadan rejimi MQTT 3.x tərəfindən dəstəklənmir. MQTT 5.0-a keçin.", + mqttDeleteSubscriptionConfirm: '"{topic}" abunəliyinin konfiqurasiyası silinsin?', + mqttSubscriptionStatusActive: "Abunə olunub", + mqttSubscriptionStatusPending: "Gözləyir", + mqttSubscriptionStatusDisabled: "Deaktiv", + mqttSubscriptionDisable: "Abunəliyi deaktiv et", + mqttSubscriptionEnable: "Abunəliyi aktivləşdir", + mqttSubscriptionEdit: "Konfiqurasiyanı redaktə et", + mqttSubscriptionDelete: "Konfiqurasiyanı sil", + mqttSubscriptionOperationFailed: "Abunəlik əməliyyatı uğursuz oldu: {error}. Konfiqurasiya saxlanıldı.", + searchDatabasePlaceholder: "Verilənlər bazası növlərini axtar", + searchResults: "Axtarış nəticələri", + databaseCategories: "Kateqoriyalar", + databaseCategorySql: "Relyasiyalı", + databaseCategoryAnalytics: "Analitika", + databaseCategoryDomestic: "Çin verilənlər bazaları", + databaseCategoryLightweight: "Yüngül", + databaseCategoryDocument: "Sənədlər/keş/axtarış", + databaseCategoryGraphAi: "Qraf/vektor", + databaseCategoryTimeseries: "Zaman sıraları", + databaseCategoryMq: "Mesaj növbələri", + databaseCategoryRegistryConfig: "Reyestr/konfiqurasiya", + jdbcConnection: "JDBC əlaqəsi", + iconView: "İkon görünüşü", + listView: "Siyahı görünüşü", + selectedDatabase: "Seçilib", + noDatabaseMatches: "Uyğun verilənlər bazası yoxdur", + next: "Növbəti", + back: "Əvvəlki", + basicTab: "Əlaqə", + tlsTab: "TLS/SSL", + test: "Sına", + testing: "Sınanır...", + copyTestResult: "Sınaq nəticəsini kopyala", + sqlServerLegacyCompatibilityMode: "Köhnə versiyalarla uyğunluq rejimi", + sqlServerLegacyCompatibilityModeEnable: "Aktivləşdir", + sqlServerLegacyCompatibilityModeHint: "TLS 1.0, yalnız giriş zamanı şifrələmə və ya şifrələməsiz iş rejimi ilə məhdudlaşan SQL Server instansiyaları üçün.\nBəzi funksiyalar məhdud ola bilər; yalnız etibarlı şəbəkələrdə istifadə edin.", + sqlServerLegacyCompatibilityComponent: "SQL Server-in köhnə versiyalarla uyğunluq komponenti", + gaussdbConnectionMode: "Əlaqə rejimi", + gaussdbConnectionModeNative: "PostgreSQL ilə uyğun (daxili drayver)", + gaussdbConnectionModeMJdbc: "M rejimi (istehsalçının JDBC drayveri)", + gaussdbConnectionModeNativeHint: "GaussDB A/PG/Oracle uyğunluq rejimləri üçün DBX-in daxili PostgreSQL ilə uyğun protokolundan istifadə edir.", + gaussdbConnectionModeMJdbcHint: "GaussDB M rejimi üçün com.huawei.gaussdb.jdbc.Driver ilə jdbc:gaussdb-dən istifadə edir.", + gaussdbMJdbcDriver: "GaussDB JDBC drayveri", + gaussdbMJdbcDriverPlaceholder: "Server versiyasına uyğun gaussdbjdbc.jar seçin", + gaussdbMJdbcDriverHint: "Drayver hər GaussDB server versiyası ilə birlikdə buraxılır. gaussdbjdbc.jar faylını uyğun GaussDB drayver paketindən əldə edin.", + gaussdbMJdbcDriverRequired: "GaussDB M rejimi istehsalçının JDBC drayverini tələb edir. Server versiyasına uyğun gaussdbjdbc.jar seçin.", + gaussdbMJdbcPluginInstalling: "JDBC icra mühiti quraşdırılır...", + gaussdbIdentifierQuoteStyle: "İdentifikator uyğunluğu", + gaussdbIdentifierQuoteAuto: "Avtomatik (drayver/standart)", + gaussdbIdentifierQuoteDouble: 'Oracle/PostgreSQL (qoşa dırnaqlar ")', + gaussdbIdentifierQuoteBacktick: "MySQL/M (tərs dırnaqlar `)", + gaussdbIdentifierQuoteHint: "Avtomatik rejim JDBC drayverinin metaməlumatlarından və ya GaussDB-nin yerli standartından istifadə edir. Yalnız yaradılan SQL identifikatorlar üçün yanlış dırnaqlardan istifadə etdikdə rejimi əl ilə seçin.", + gaussdbTargetServerType: "Hədəf serverin növü", + gaussdbTargetServerTypeMaster: "Əsas (ilkin)", + gaussdbTargetServerTypeSlave: "İkinci dərəcəli (ehtiyat)", + gaussdbTargetServerTypeAny: "İstənilən (üstünlük yoxdur)", + gaussdbTargetServerTypeHint: "JDBC drayverinin GaussDB klasterində hansı qovşağa qoşulacağını idarə edir. Əsas rejim ilkin qovşağı, ikinci dərəcəli rejim ehtiyat qovşağı sınayır, istənilən rejim isə əlçatan olan qovşağa qoşulur. Yalnız M (JDBC) rejimində tətbiq olunur.", + gaussdbCountQueryDop: "COUNT(*) paralelliyi", + gaussdbCountQueryDopHint: "Böyük cədvəllərdə COUNT(*) sorğuları üçün query_dop (paralellik dərəcəsi) təyin edir. Daha yüksək dəyərlər daha çox resurs istifadə edir. Optimallaşdırıcı göstərişini deaktiv etmək üçün 1 (standart) təyin edin.", + saveAndConnect: "Yadda saxla və əlaqə qur", + save: "Yadda saxla", + editTitle: "Əlaqəni redaktə et", + testSuccess: "Əlaqə uğurla quruldu", + databaseInfo: { + title: "Verilənlər bazası haqqında məlumat", + open: "{database} üçün verilənlər bazası məlumatlarını aç", + copy: "Verilənlər bazası məlumatlarını kopyala", + sourceConfigured: "Cari konfiqurasiya", + sourceTested: "Sınanıb", + configuredDescription: "Əvvəlcə formadan məlum olan məlumatları göstərir. Uğurlu sınaq server versiyasını və drayverin metaməlumatlarını əlavə edir.", + testedDescription: "Bu məlumatlar son uğurlu sınaqda istifadə edilmiş əlaqədən əldə edilib.", + productName: "DBMS", + productVersion: "Server versiyası", + currentDatabase: "Cari verilənlər bazası", + serverComment: "Server şərhi", + serverCharset: "Serverin simvol dəsti", + serverCollation: "Serverin çeşidləmə qaydası", + unquotedIdentifierCase: "Dırnaqsız identifikatorlar", + quotedIdentifierCase: "Dırnaqlı identifikatorlar", + driverName: "Drayver", + driverVersion: "Drayver versiyası", + jdbcVersion: "JDBC versiyası", + identifierCase: { + lower: "Kiçik hərflər", + upper: "Böyük hərflər", + mixed: "Qarışıq registr", + }, + }, + connecting: "{name} ilə əlaqə qurulur...", + connectSuccess: "{name} ilə əlaqə quruldu", + connectFailed: "Əlaqə qurulmadı: {message}", + driverNotInstalled: "{driver} drayveri quraşdırılmayıb. Onu drayver menecerindən quraşdırın.", + phoenixDriverNotInstalled: "Apache Phoenix JDBC drayveri quraşdırılmayıb. Onu drayver menecerindən quraşdırın, sonra yenidən cəhd edin.", + jreNotInstalled: "JRE {jre} icra mühiti quraşdırılmayıb. Onu drayver menecerindən quraşdırın.", + systemJavaNotFound: "Sistemin Java icra mühiti PATH-də tapılmadı. Java quraşdırın və ya xüsusi Java icra faylı seçin.", + customJavaPathEmpty: "Xüsusi Java icra mühitinin yolu boşdur. Java icra faylı seçin.", + agentJavaTooOld: "Bu drayver Java 21 tələb edir. DBX tərəfindən idarə olunan JRE 21-dən istifadə edin və ya drayver menecerində Java 21 icra faylı seçin.", + agentDriverUpdateConnectionHint: "Bu əlaqə üçün daxili drayver yeniləməsi mövcuddur. Əlaqə xətası köhnəlmiş yerli drayverlə bağlı ola bilər. Drayver menecerində müvafiq drayveri yeniləyin, sonra yenidən cəhd edin.", + jdbcPluginNotInstalled: "JDBC plagini quraşdırılmayıb. Bu əlaqədən istifadə etmək üçün istəyə bağlı JDBC plaginini quraşdırın.", + connectFailedTitle: "Əlaqə qurulmadı", + fullErrorMessage: "Tam xəta mesajı", + copyError: "Xətanı kopyala", + optionalSuffix: " (istəyə bağlı)", + customColorPlaceholder: "#ff0000 və ya rgba(…)", + tursoHostPlaceholder: "your-database.turso.io və ya libsql://your-database.turso.io", + tursoHostHint: "libsql:// və https:// protokollarını dəstəkləyir. Yalnız host adını da daxil edə bilərsiniz (HTTPS avtomatik istifadə olunur).", + tursoTokenHint: "Bu əmrlə token yaradın:", + tursoUrlParamsPlaceholder: "authToken=xxx (istəyə bağlı, yuxarıdakı kimlik doğrulama tokeni sahəsi üstünlük təşkil edir)", + driverInstall: { + installingTitle: "Drayver quraşdırılır", + failedTitle: "Drayverin quraşdırılması uğursuz oldu", + fullError: "Tam xəta", + statusFailed: "Quraşdırma uğursuz oldu", + statusWaiting: "Quraşdırma gözlənilir", + statusPreparing: "Drayverin quraşdırılması hazırlanır...", + statusExtractingJre: "JRE arxivdən çıxarılır...", + stepJre: "JRE endirilir", + stepDriver: "Drayver endirilir", + stepDefault: "Drayver quraşdırılır", + installingButton: "Quraşdırılır...", + }, + lastError: "Əlaqə xətası", + errorIndicatorHint: "Əlaqə xətası. Təfərrüatlara baxmaq üçün klikləyin", + clearError: "Əlaqə xətasını təmizlə", + saveFailed: "Əlaqəni yadda saxlamaq mümkün olmadı: {message}", + savedSettingsFailed: "Əlaqə yadda saxlanıldı, lakin görünüş parametrini yadda saxlamaq mümkün olmadı: {message}. Parametri yadda saxlamaq üçün yenidən cəhd edin.", + deleted: "Əlaqə silindi", + deletedSelected: "{count} əlaqə silindi", + copied: "Kopyalandı", + disconnected: "Əlaqə kəsildi", + disconnectedSelected: "{count} əlaqə kəsildi", + disconnectSelectedPartial: "{succeeded} əlaqə kəsildi; {failed} əlaqədə əməliyyat uğursuz oldu", + databaseConnectionClosed: "Verilənlər bazası əlaqəsi bağlandı: {name}", + duplicated: "Əlaqənin surəti yaradıldı", + duplicatedSelected: "{count} əlaqənin surəti yaradıldı", + groupDeleted: "Qrup silindi", + groupsDeleted: "{count} qrup silindi", + loadFailed: "Yadda saxlanmış əlaqələri yükləmək mümkün olmadı: {message}", + sshTunnel: "Tunel / proksi", + sshTunnelTest: "SSH tunelini sına", + sshTunnelTesting: "SSH tuneli sınanır...", + sshTunnelTestSuccess: "SSH tuneli ilə əlaqə uğurla quruldu", + advancedTab: "Əlavə", + sshEnable: "Tuneldən / proksidən istifadə et", + sshHost: "SSH hostu", + sshHostPlaceholder: "ssh.example.com və ya ~/.ssh/config faylından ləqəb", + sshUser: "SSH istifadəçisi", + sshAuthMethod: "Giriş üsulu", + sshAuthMethodPassword: "Parol", + sshAuthMethodKey: "Şəxsi açar", + sshAuthMethodKeyPassword: "Şəxsi açar + parol", + sshAuthMethodNone: "Yoxdur", + sshAuthMethodNoneHint: "Kimlik məlumatları göndərilməyəcək. Kimlik doğrulaması olmadan əlaqələri qəbul edən bastionlar və ya proksilər üçün istifadə edin.", + sshAuthMethodAgentLegacy: "SSH agenti (köhnə)", + sshPassword: "SSH parolu", + sshPasswordPlaceholder: "Açardan istifadə etmək üçün boş saxlayın", + sshKeyPath: "Açarın yolu", + sshKeyPassphrase: "Açarın parol ifadəsi", + sshKeyPassphrasePlaceholder: "Açar şifrələnməyibsə, boş saxlayın", + sshKeyPathBrowse: "Gözdən keçir", + sshExposeLan: "Tuneli LAN üçün əlçatan et", + sshAllowExecChannelProxy: "SSH exec-channel ehtiyat üsulunu aktivləşdir (nc)", + sshConnectTimeout: "SSH vaxt limiti (saniyə)", + sshHops: "Tunel / proksi qatları", + sshHopAdd: "SSH qatı əlavə et", + sshHopDuplicate: "Surətini yarat", + sshHopDelete: "Sil", + sshHopMoveUp: "Yuxarı köçür", + sshHopMoveDown: "Aşağı köçür", + sshHopName: "Qatın adı", + sshHopNamePlaceholder: "Bastion, keçid hostu, istehsal şlüzü", + sshHopDefaultName: "Qat {index}", + sshHopInvalidHost: "{hop}: SSH hostu tələb olunur", + sshHopInvalidUser: "{hop}: SSH istifadəçisi tələb olunur", + sshHopInvalidPort: "{hop}: SSH portu 1 ilə 65535 arasında olmalıdır", + sshHopInvalidAuth: "{hop}: parol, açarın yolu və ya ssh-agent tələb olunur", + sshUseAgent: "ssh-agent-dən istifadə et", + sshAgentSockPath: "Agent soketinin yolu", + sshAgentSockPathPlaceholder: "məsələn, ~/.ssh/agent.sock", + sshHostKeyVerifyTitle: "Naməlum SSH host açarını təsdiqlə", + sshHostKeyVerifyMessage: "'{host}:{port}' hostunun həqiqiliyi müəyyən edilmədi. Araya girən tərəfin hücumlarından qorunmaq üçün davam etməzdən əvvəl host açarının barmaq izini server inzibatçınızla yoxlayın.", + sshHostKeyVerifyKeyType: "Açarın növü", + sshHostKeyVerifyFingerprint: "Barmaq izi", + sshHostKeyVerifyRemember: "Bu hosta etibar et (bu açarı gələcək əlaqələr üçün yadda saxla)", + sshHostKeyVerifyAccept: "Qəbul et və əlaqə qur", + sshHostKeyVerifyReject: "Ləğv et", + sshInteractiveTitle: "SSH yoxlaması tələb olunur", + sshInteractiveMessage: "{host}:{port} ünvanındakı SSH serveri əlavə yoxlama tələb edir.", + sshInteractiveDefaultPrompt: "Tələb olunan yoxlama cavabını daxil edin.", + sshInteractivePlaceholder: "Yoxlama kodunu daxil edin", + sshInteractiveSubmit: "Yoxla", + sshInteractiveCancel: "Ləğv et", + sshHostKeyNoticeChanged: "{host}:{port} üçün host açarı dəyişib — bu, araya girən tərəfin hücumuna işarə edə bilər. Yalnız bu dəyişikliyi gözləyirsinizsə, köhnə qeydi silin və yenidən əlaqə qurun.", + sshHostKeyNoticeRejected: "{host}:{port} üçün host açarını rədd etdiniz; əlaqə dayandırıldı və kimlik məlumatları göndərilmədi.", + sshHostKeyNoticeLearnFailed: "{host}:{port} üçün host açarını yadda saxlamaq mümkün olmadı — hosta yalnız bu sessiya üçün etibar edilir və növbəti dəfə onu yenidən yoxlamağınız istəniləcək.", + sshHostKeyNoticeGeneric: "{host}:{port} üçün SSH host açarının yoxlanması uğursuz oldu.", + sqliteTransportSshOnly: "Uzaq SQLite yalnız SSH keçidlərini dəstəkləyir. Proksi və HTTP tuneli qatlarından istifadə etmək mümkün deyil.", + sqliteRemotePathPlaceholder: "/var/lib/app/data.db", + sqliteRemotePathHint: "Son SSH keçidində mütləq yol daxil edin.", + sqliteSshCipherUnsupportedHint: "Şifrələnmiş (SQLCipher) SQLite verilənlər bazaları SSH üzərindən hələ dəstəklənmir.", + sqliteWorkerPlacement: "SQLite işçi prosesi", + sqliteWorkerPlacementSession: "Sessiya", + sqliteWorkerPlacementPersist: "Daimi", + sqliteWorkerPlacementPreplaced: "Əvvəlcədən yerləşdirilmiş", + sqliteWorkerPlacementSessionHint: "DBX işçi proqramını SSH üzərindən fayl hostuna yükləyir, sonra əlaqəni kəsdiyiniz zaman uzaq faylı silir. Müvəqqəti istifadə üçün uyğundur.", + sqliteWorkerPlacementPersistHint: "DBX işçi proqramını SSH üzərindən fayl hostuna yükləyir və əlaqə kəsildikdən sonra orada saxlayır. O, avtomatik silinmir.", + sqliteWorkerPlacementPreplacedHint: "İşçi proqramını fayl hostuna özünüz yükləyin, sonra faylın mütləq yolunu daxil edin. DBX onu avtomatik yükləməyəcək və ya silməyəcək, lakin faylın bu masaüstü versiyasına uyğunluğunu yoxlayacaq.", + sqliteWorkerPlacementDefault: "Standart", + sqliteWorkerPersistPathPlaceholder: "~/.cache/dbx/sqlite-worker/", + sqliteWorkerPreplacedPathPlaceholder: "/opt/dbx/dbx-sqlite-worker", + sshWorkerUploadConsentTitle: "SQLite işçi proqramını yüklə", + sshWorkerUploadConsentMessage: "DBX qısamüddətli SQLite işçi proqramını {host}:{port} ünvanına kopyalamalıdır. Bu əməliyyat yüksək səlahiyyət tələb edir. Yükləməyə icazə verməzdən əvvəl təyinat yolunu və heş dəyərini nəzərdən keçirin.", + sshWorkerUploadConsentPath: "Təyinat yolu", + sshWorkerUploadConsentDigest: "İşçi proqramının heş dəyəri", + sshWorkerUploadConsentRemember: "Bu fayl hostunu və heş dəyərini yadda saxla", + sshWorkerUploadConsentAccept: "Yüklə", + sshWorkerUploadConsentReject: "Ləğv et", + sshHopInvalidTimeout: "{hop}: SSH vaxt limiti 1 ilə 300 saniyə arasında olmalıdır", + connectTimeout: "Əlaqə üçün vaxt limiti (saniyə)", + queryTimeout: "Sorğu üçün vaxt limiti (saniyə)", + useGlobalQueryTimeout: "Qlobal", + globalConnectTimeoutHint: "Aralıq: 1–300 saniyə", + globalQueryTimeoutHint: "Aralıq: 0–3600 saniyə. Vaxt limitini ləğv etmək üçün 0 təyin edin.", + useConnectionQueryTimeout: "Əlaqə", + idleTimeout: "Boşdayanma vaxt limiti (saniyə)", + keepaliveInterval: "Əlaqənin canlı saxlanma intervalı (saniyə)", + readOnly: "Yalnız oxuma", + readOnlyHint: "Bütün yazma əməliyyatlarını blokla (INSERT, UPDATE, DELETE və s.)", + doltShowSystemTables: "Dolt sistem cədvəllərini göstər", + doltShowSystemTablesHint: "Bu əlaqənin cədvəl siyahılarında Dolt-un daxili versiya idarəetmə cədvəllərini göstər.", + showSystemSchemas: "Sistem sxemlərini göstər", + showSystemSchemasHint: "Bu əlaqə üçün yan paneldə və sxem seçicilərində daxili və metaməlumat sxemlərini göstər.", + docsNotesPath: "Qeydlər faylı", + docsNotesPathPlaceholder: "docs/dbx-docs.json", + docsNotesPathHint: "Sənədləşdirmə qeydlərinin saxlandığı yer. Onları tətbiqin məlumat qovluğunda saxlamaq üçün boş buraxın və ya dəyişiklik sorğularında sxem sənədlərini nəzərdən keçirmək üçün repozitoriyanızdakı faylı göstərin.", + readOnlyBadge: "Yalnız oxuma", + proxy: "Proksi", + proxyEnable: "Verilənlər bazası ilə proksi vasitəsilə əlaqə qur", + proxyType: "Proksi növü", + proxyHost: "Proksi hostu", + proxyUsername: "Proksi istifadəçisi", + proxyUsernamePlaceholder: "İstəyə bağlı", + proxyPassword: "Proksi parolu", + proxyPasswordPlaceholder: "İstəyə bağlı", + proxyTestTarget: "Sınaq hədəfi", + proxyTestTargetPlaceholder: "host:port — boş = son nöqtənin yoxlanması, tam tunel sınağı üçün doldurun", + tunnelProfile: "Tunel profili", + tunnelProfileCustom: "Xüsusi (yalnız bu əlaqə)", + tunnelProfileManaged: "Ortaq tunel profili tərəfindən idarə olunur. Onu Parametrlər > Tunellər bölməsində redaktə edin — dəyişikliklər ondan istifadə edən hər əlaqəyə növbəti qoşulmada tətbiq olunur.", + tunnelProfileMissing: "İstinad edilən tunel profili artıq mövcud deyil. Başqa profil seçin və ya xüsusi rejimə keçin.", + tunnelProfileMissingName: "Tunel profili yoxdur", + tunnelProfileManage: "İdarə et", + httpTunnel: "HTTP tuneli", + httpTunnelAdd: "HTTP tuneli əlavə et", + httpTunnelUrl: "Tunel skriptinin URL-i", + httpTunnelToken: "Tunel tokeni", + httpTunnelTokenPlaceholder: "dbx_tunnel.php faylında konfiqurasiya edilmiş token", + httpTunnelConnectTimeout: "Tunel üçün vaxt limiti (saniyə)", + httpTunnelDefaultName: "HTTP tuneli {index}", + httpTunnelInvalidOrder: "{hop}: HTTP tuneli ilk tunel / proksi qatı olmalıdır", + httpTunnelInvalidUrl: "{hop}: tunel skriptinin URL-i tələb olunur", + httpTunnelInvalidTimeout: "{hop}: HTTP tunelinin vaxt limiti 1 ilə 300 saniyə arasında olmalıdır", + dremioArrowFlightSqlMode: "Arrow Flight SQL", + dremioLegacyJdbcMode: "Köhnə JDBC", + phoenixDirectMode: "Birbaşa", + phoenixRuntimeOption: "Apache Phoenix JDBC ({mode})", + phoenixQueryServerMode: "Sorğu serveri", + phoenixDirectModeHint: "Birbaşa HBase ilə əlaqə qurur. Standart icra mühiti HBase 2.5 ilə Phoenix 5.2.1 üçün nəzərdə tutulub; digər klaster versiyaları üçün uyğun Phoenix müştərisini seçin və tələb olunduqda hbase-site.xml əlavə edin.", + phoenixQueryServerModeHint: "Phoenix yüngül müştərisindən istifadə edərək ayrıca yerləşdirilmiş Phoenix Query Server (PQS) vasitəsilə HTTP üzərindən əlaqə qurur.", + phoenixDriverManagerHintPrefix: "Standart icra mühitini burada quraşdırın və ya silin: ", + phoenixDriverManagerHintSuffix: ". Əl ilə seçilmiş uyğun drayver yolları üstünlük təşkil edir.", + phoenixDocs: "Phoenix sənədlərinə bax", + jdbcUrl: "JDBC URL-i", + jdbcUrlPlaceholder: "jdbc:postgresql://localhost:5432/database", + jdbcDriverClass: "Drayver sinfi (istəyə bağlı)", + jdbcDriverClassPlaceholder: "Əksər drayverlər avtomatik qeydiyyatdan keçir; lazım gələrsə, com.vendor.jdbc.Driver sinfindən istifadə edin", + jdbcDriverPaths: "Drayver JAR faylları", + jdbcDriverSelectPlaceholder: "İdxal edilmiş drayveri seçin", + jdbcManualClasspath: "Əl ilə təyin olunan classpath", + jdbcManualClasspathCount: "{count} yol", + jdbcDriverPathsPlaceholder: "/path/to/driver.jar\n/path/to/another-driver.jar", + jdbcDriverBrowse: "JDBC drayverinin JAR faylını seçin", + jdbcDocs: "JDBC sənədlərinə bax", + jdbcPluginHint: "Əvvəlcə DBX JDBC plaginini quraşdırın. Xarici asılılıqları olan drayverləri drayver menecerində Maven-dən quraşdırın və ya drayveri və bütün asılılıq JAR fayllarını birlikdə idxal edin.", + jdbcMissingRuntimeDependencyHint: "Bu JDBC drayverinin icra mühiti asılılıqları çatışmır. Onu drayver menecerində Maven-dən quraşdırın və ya drayveri və bütün asılılıq JAR fayllarını birlikdə idxal edin.", + jdbcxExtensions: "JDBCX genişlənmələri", + jdbcxHighPrivilegeExtensions: "Yüksək səlahiyyətli genişlənmələrə icazə ver", + jdbcxHighPrivilegeExtensionsWarning: "Standart olaraq deaktivdir. Aktivləşdirmə Shell, Script, Web, MCP və digər genişlənmələrə yerli əmrləri icra etməyə və ya şəbəkəyə girişə icazə verir.", + dmCompatHint: "Sisteminizdə DM8 ODBC drayverinin quraşdırılmasını tələb edir.", + dmDownload: "Dameng-dən endir", + mongoLegacyHint: "Köhnə MongoDB serverləri, xüsusilə 4.2-dən əvvəlki versiyalar üçün köhnə rejimdən istifadə edin. Kimlik doğrulaması uğursuz olarsa və istifadəçi admin-də yaradılıbsa, kimlik doğrulama bazasını admin olaraq təyin edin.", + mongoTlsAllowInvalidCertificates: "TLS sertifikatının yoxlanmasını deaktiv et", + mongoTlsAllowInvalidCertificatesHint: "tlsAllowInvalidCertificates=true parametrinə uyğundur və yalnız host adı yoxlamalarını deyil, bütün sertifikat yoxlamalarını deaktiv edir. Bu, MITM riskini artırır. SSH tuneli üzərindən AWS DocumentDB üçün adətən tələb olunur.", + mongoRetryWrites: "Yazma əməliyyatlarına yenidən cəhd et", + mongoRetryWritesHint: "retryWrites parametrinə uyğundur. Təkrar yazma cəhdlərini dəstəkləməyən AWS DocumentDB üçün deaktiv edin.", + compatible: "Uyğun", + mainstream: "Populyar", + color: "Rəng", + colorNone: "Rəngsiz", + colorGreen: "Yaşıl", + colorYellow: "Sarı", + colorOrange: "Narıncı", + colorRed: "Qırmızı", + colorBlue: "Mavi", + colorPurple: "Bənövşəyi", + colorCustom: "Xüsusi rəng", + cancelConnecting: "Əlaqə qurulmasını ləğv et", + connectCancelled: "Əlaqə qurulması ləğv edildi", + sshTotpCancelled: "Birdəfəlik kodun daxil edilməsi ləğv edildi", + }, + editor: { + duckdbDraining: "Əvvəlki DuckDB sorğusu hələ dayandırılır. Bir az sonra yenidən cəhd edin.", + statementExecutionRunning: "{count} ifadə icra olunur | {count} ifadə icra olunur", + statementExecutionSucceeded: "{count} ifadə uğurla icra olundu | {count} ifadə uğurla icra olundu", + statementExecutionFailed: "{count} ifadənin icrası uğursuz oldu | {count} ifadənin icrası uğursuz oldu", + pressToExecute: "İcra etmək üçün {mod}+Enter düymələrini basın", + pressToSaveSql: "SQL-i yadda saxlamaq üçün {mod}+S düymələrini basın", + queryTimeoutError: "Sorğunun vaxt limiti bitdi ({seconds}s). Verilənlər bazası əlaqəsinin işlək olub-olmadığını yoxlayın.", + changeConnectionTimeout: "Əlaqənin vaxt limitini dəyiş", + changeQueryTimeout: "Sorğunun vaxt limitini dəyiş", + connectionMayBeLost: "Əlaqə kəsilmiş ola bilər. Məlumatları yeniləyin və yenidən cəhd edin.", + showResultsPane: "Nəticələri göstər", + hideResultsPane: "Nəticələri gizlət", + noDatabase: "Verilənlər bazası seçilməyib", + connectionOnlyTarget: "Əlaqə səviyyəsində hədəf", + unsavedChangesTitle: "Yadda saxlanılmamış dəyişikliklər", + unsavedChangesMessage: '"{title}" daxilində yadda saxlanmamış dəyişikliklər var və bağlandıqda itiriləcək. Bağlamazdan əvvəl yadda saxlanılsın?', + unsavedChangesBatchCloseMessage: "Bağladığınız bəzi vərəqlərdə yadda saxlanılmamış dəyişikliklər var və onlar itiriləcək. Davam etməzdən əvvəl yadda saxlanılsın?", + unsavedChangesBatchCloseMultipleMessage: 'Bağladığınız {count} SQL vərəqində yadda saxlanmamış dəyişikliklər var. DBX hazırda "{title}" vərəqini göstərir. Davam etməzdən əvvəl yadda saxlanılsın?', + unsavedChangesAppCloseMessage: '"{title}" daxilində yadda saxlanmamış SQL dəyişiklikləri var və DBX-dən çıxdıqda itiriləcək. Çıxmazdan əvvəl yadda saxlanılsın?', + unsavedChangesAppCloseMultipleMessage: '{count} SQL vərəqində yadda saxlanmamış dəyişikliklər var. DBX hazırda "{title}" vərəqini göstərir. Çıxmazdan əvvəl yadda saxlanılsın?', + unsavedChangesViewList: "{count} vərəqə bax", + unsavedChangesListTitle: "Yadda saxlanılmamış vərəqlər ({count})", + discardChanges: "Dəyişikliklərdən imtina et", + discardAllChanges: "Bütün dəyişikliklərdən imtina et", + saveAllChanges: "Hamısını yadda saxla", + selectConnection: "Əlaqə seç", + searchConnection: "Əlaqələri axtar...", + selectCatalog: "Kataloq seç", + searchCatalog: "Kataloqları axtar...", + selectDatabase: "Verilənlər bazası seç", + selectDatabaseRequired: "Əvvəlcə verilənlər bazası seçin", + searchDatabase: "Verilənlər bazalarını axtar...", + selectSchema: "Sxem seç", + searchSchema: "Sxemləri axtar...", + setDefaultDatabase: "Standart olaraq təyin et", + defaultDatabase: "Standart", + defaultSchema: "Standart", + clearDatabase: "Verilənlər bazası seçimini təmizlə", + exPasteNoValues: "Mübadilə buferində IN şərti üçün dəyər yoxdur", + exPasteNotList: "Çevrilə bilən çoxdəyərli siyahı aşkarlanmadı", + exPasteTooLarge: "Mübadilə buferinin məzmunu çox böyükdür. Dəstəklənən maksimum uzunluq {limit} simvoldur.", + exPasteTooManyValues: "Dəyər sayı çoxdur. Dəstəklənən maksimum say {limit}.", + exPasteClipboardReadFailed: "Mübadilə buferini oxumaq mümkün olmadı: {message}", + exPastePasted: "IN şərti üçün {count} dəyər yerləşdirildi", + completion: { + nullValue: "NULL dəyəri", + isNull: "NULL olub-olmadığını yoxla", + isNotNull: "NULL olmadığını yoxla", + stringLiteral: "Sətir literalı", + numericLiteral: "Ədədi literal", + booleanValue: "Məntiqi dəyər", + starExpansionColumns: "{count} sütun", + insertSelectedColumns: "Seçilmiş sütunları daxil et ({count})", + insertSelectedColumnsDetail: "Seçim xanaları ilə sütunları seçin, sonra onları birlikdə daxil edin", + selectColumnsBeforeInsert: "Əvvəlcə ən azı bir sütun seçin", + tableAlias: "Cədvəlin ləqəbi", + functionDescriptions: { + COUNT: "Sətirlərin sayını qaytarır", + SUM: "Ədədi sütunun cəmini qaytarır", + AVG: "Ədədi sütunun orta qiymətini qaytarır", + MIN: "Minimum dəyəri qaytarır", + MAX: "Maksimum dəyəri qaytarır", + GROUP_CONCAT: "Qrup dəyərlərini bir sətirdə birləşdirir", + STRING_AGG: "Qrup sətirlərini birləşdirir", + CONCAT: "Bir neçə sətri birləşdirir", + CONCAT_WS: "Sətirləri ayırıcı ilə birləşdirir", + SUBSTRING: "Altsətri çıxarır", + REPLACE: "Sətirdəki məzmunu əvəz edir", + TRIM: "Əvvəldəki və sondakı boşluqları silir", + UPPER: "Böyük hərflərə çevirir", + LOWER: "Kiçik hərflərə çevirir", + LENGTH: "Sətrin uzunluğunu qaytarır", + REGEXP_REPLACE: "Müntəzəm ifadə ilə əvəz edir", + DATE_FORMAT: "Tarixi verilmiş formata uyğun formatlayır", + DATEDIFF: "İki tarix arasındakı fərqi hesablayır", + DATE_ADD: "Tarixə interval əlavə edir", + DATE_SUB: "Tarixdən interval çıxır", + EXTRACT: "Tarixin bir hissəsini çıxarır", + NOW: "Cari tarix və vaxtı qaytarır", + CURRENT_DATE: "Cari tarixi qaytarır", + CURRENT_TIME: "Cari vaxtı qaytarır", + CURRENT_TIMESTAMP: "Cari tarix və vaxtı qaytarır", + CURDATE: "Cari tarixi qaytarır", + CURTIME: "Cari vaxtı qaytarır", + LOCALTIME: "Cari yerli vaxtı qaytarır", + LOCALTIMESTAMP: "Cari yerli tarix və vaxtı qaytarır", + UTC_DATE: "Cari UTC tarixini qaytarır", + UTC_TIME: "Cari UTC vaxtını qaytarır", + UTC_TIMESTAMP: "Cari UTC tarix və vaxtını qaytarır", + SYSDATE: "Cari tarix və vaxtı qaytarır", + DATE: "Tarix hissəsini çıxarır", + TIME: "Vaxt hissəsini çıxarır", + TIMESTAMPDIFF: "İki tarix-vaxt dəyəri arasındakı fərqi qaytarır", + YEAR: "İli çıxarır", + MONTH: "Ayı çıxarır", + DAY: "Günü çıxarır", + HOUR: "Saatı çıxarır", + MINUTE: "Dəqiqəni çıxarır", + SECOND: "Saniyəni çıxarır", + DAYOFWEEK: "Həftənin gününün indeksini qaytarır", + DAYOFYEAR: "İlin gününü qaytarır", + LAST_DAY: "Ayın son gününü qaytarır", + STR_TO_DATE: "Sətri tarixə çevirir", + IF: "Şərtə əsasən dəyər qaytarır", + LEFT: "Ən soldakı simvolları qaytarır", + RIGHT: "Ən sağdakı simvolları qaytarır", + SUBSTRING_INDEX: "Ayırıcının göstərilən sayından əvvəlki altsətri qaytarır", + CHAR_LENGTH: "Simvol sayını qaytarır", + INSTR: "Altsətrin mövqeyini qaytarır", + LOCATE: "Altsətrin mövqeyini qaytarır", + LPAD: "Sətri müəyyən uzunluğa çatdırmaq üçün soldan doldurur", + RPAD: "Sətri müəyyən uzunluğa çatdırmaq üçün sağdan doldurur", + FIND_IN_SET: "Vergüllə ayrılmış siyahıdakı indeksi qaytarır", + RAND: "Təsadüfi sürüşən vergüllü dəyər qaytarır", + MD5: "MD5 heşini qaytarır", + SHA1: "SHA1 heşini qaytarır", + SHA2: "SHA2 heşini qaytarır", + ROUND: "Göstərilən sayda onluq mərtəbəyə qədər yuvarlaqlaşdırır", + FLOOR: "Aşağı yuvarlaqlaşdırır", + CEIL: "Yuxarı yuvarlaqlaşdırır", + ABS: "Mütləq dəyəri qaytarır", + MOD: "Bölmədən alınan qalığı qaytarır", + COALESCE: "NULL olmayan ilk arqumenti qaytarır", + IFNULL: "NULL olduqda əvəzedici dəyər qaytarır", + NULLIF: "Arqumentlər bərabərdirsə, NULL qaytarır", + CAST: "İfadəni hədəf növə çevirir", + JSON_EXTRACT: "JSON-dan dəyər çıxarır", + JSON_VALUE: "JSON-dan skalyar dəyər çıxarır", + JSON_OBJECT: "JSON obyekti yaradır", + JSON_ARRAY: "JSON massivi yaradır", + }, + }, + previewChanges: "Dəyişikliklərə önbaxış", + previewChangesComment: "{operation} ifadəsi üçün dəyişikliklərə önbaxış (sınaq icrası)", + previewChangesFailed: "Dəyişikliklərə önbaxış uğursuz oldu.", + previewChangesNoStatement: "Dəyişikliklərə önbaxış üçün UPDATE / INSERT / DELETE ifadəsini seçin və ya kursoru onun üzərinə yerləşdirin.", + contextMenu: { + executeSelection: "Seçimi icra et", + executeCurrent: "SQL-i icra et", + export: "İxrac et", + exportQueryResultTo: "Cari sorğunun nəticəsini {format} formatına ixrac et", + copySelection: "Seçimi kopyala", + screenshotSelection: "Seçilmiş kodun ekran görüntüsünü çək", + commentSelection: "Seçimi şərhə çevir", + blockCommentSelection: "Seçimi blok şərhinə çevir", + formatSelectionSql: "Seçilmiş SQL-i formatla", + compressSelectionSql: "Seçilmiş SQL-i sıxlaşdır", + cutSelection: "Seçimi kəs", + pasteFromClipboard: "Yerləşdir", + pasteClipboardReadFailed: "Mübadilə buferini oxumaq mümkün olmadı: {message}", + sendToAi: "Süni intellektə göndər", + uppercaseSelection: "Böyük hərflərə çevir", + lowercaseSelection: "Kiçik hərflərə çevir", + convertNamingStyle: "Adlandırma üslubunu dəyiş", + delimitedList: "Ayırıcı ilə ayrılmış siyahıya çevir", + addNextSelectionOccurrence: "Növbəti uyğunluğu əlavə et", + selectAllSelectionOccurrences: "Bütün uyğunluqları seç", + expandSelectStar: "* işarəsini sütunlarla əvəz et", + expandSelectStarUnavailable: "Bu cədvəlin sütunlarını yükləmək mümkün deyil", + findReplace: "Tap/əvəz et", + deleteEmptyLines: "Boş sətirləri sil", + selectAll: "Hamısını seç", + }, + delimitedList: { + title: "Ayırıcı ilə ayrılmış siyahıya çevir", + columnDelimiter: "Sütun ayırıcısı", + resultDelimiter: "Nəticə ayırıcısı", + quoteChar: "Dırnaq simvolu", + wrapColumn: "Sətri bölmək üçün sütun həddi", + prefixText: "Ön şəkilçi mətni", + suffixText: "Son şəkilçi mətni", + preview: "Önbaxış", + emptyPreview: "Önbaxış üçün heç nə yoxdur", + confirm: "Təsdiqlə", + selectFirst: "Siyahı mətnini seçin", + }, + search: { + find: "Tap", + replace: "Əvəz et", + replaceAll: "Hamısını əvəz et", + caseSensitive: "Böyük və kiçik hərflərə həssas", + regex: "Müntəzəm ifadə", + collapseReplace: "Əvəzetməni yığ", + expandReplace: "Əvəzetməni genişləndir", + prevMatch: "Əvvəlki (Shift+Enter)", + nextMatch: "Növbəti (Enter)", + selectAll: "Bütün uyğunluqları seç", + selectAllLimit: "Bütün uyğunluqları seç ({limit} həddinə qədər)", + selectionTruncated: "{total} uyğunluq tapıldı; ilk {limit} uyğunluq seçildi.", + selectionLimitSummary: "{limit}/{total} seçildi", + close: "Bağla (Esc)", + noResults: "Nəticə yoxdur", + inSelection: "Seçim daxilində", + }, + noExecutableStatementAtCursor: "Kursorun mövqeyində icra edilə bilən ifadə yoxdur.", + executionPicker: { + title: "İcra hədəfi", + currentStatement: "Cari SQL", + allStatements: "Bütün SQL", + currentCommand: "Cari əmr", + allCommands: "Bütün əmrlər", + }, + }, + tabs: { + sql: "SQL", + emptyGroup: "Açıq vərəq yoxdur", + table: "Cədvəl", + tableData: "Cədvəl məlumatları", + redis: "Redis", + etcd: "etcd", + etcdDashboard: "etcd idarəetmə paneli", + etcdAccessControl: "etcd girişə nəzarət", + nacosAccessControl: "Nacos girişə nəzarət", + zookeeper: "ZooKeeper", + consul: "Consul", + mongo: "Mongo", + gridfs: "GridFS", + vector: "Vektor", + databases: "Verilənlər bazaları", + objects: "Obyektlər", + users: "İstifadəçilər və səlahiyyətlər", + executionSummary: "Xülasə", + messages: "Mesajlar", + tooltipTitle: "Başlıq:", + tooltipFilePath: "Faylın yolu:", + tooltipFileStatus: "Faylın vəziyyəti:", + externalFileMissing: "DBX-dən kənarda silinib və ya köçürülüb", + tooltipConnection: "Əlaqə:", + tooltipGroup: "Qrup:", + tooltipDatabase: "Verilənlər bazası:", + tooltipTable: "Cədvəl:", + tooltipTableComment: "Cədvəlin şərhi:", + tooltipCollection: "Kolleksiya:", + tooltipSchema: "Sxem:", + resultN: "Nəticə {n}", + runN: "İcra {n}", + resultRuns: "Nəticə icraları", + resultSets: "Nəticə dəstləri", + removeRun: "{n} nömrəli icranı çıxar", + pinResultRun: "Nəticə vərəqini sabitlə", + unpinResultRun: "Nəticə vərəqinin sabitlənməsini ləğv et", + unpinAllResultRuns: "Bütün nəticə vərəqlərinin sabitlənməsini ləğv et", + closeOtherResultRuns: "Digər nəticə vərəqlərini bağla", + closeResultRunsToLeft: "Soldakı nəticə vərəqlərini bağla", + closeResultRunsToRight: "Sağdakı nəticə vərəqlərini bağla", + closeResult: "Nəticəni bağla", + autoKeepResults: "Sorğu nəticələrini avtomatik saxla", + autoKeepResultsEnabled: "Nəticələrin avtomatik saxlanması aktivdir", + autoKeepResultsDisabled: "Nəticələrin avtomatik saxlanması deaktivdir", + autoRefresh: "Nəticələri avtomatik yenilə", + autoRefreshShort: "Avtomatik", + autoRefreshEvery: "Hər {seconds} saniyədən bir yenilə", + startAutoRefresh: "Avtomatik yeniləməni başlat", + stopAutoRefresh: "Avtomatik yeniləməni dayandır", + missingResultRun: "Bu nəticə artıq mövcud deyil", + exportResultArchive: "Nəticələri yadda saxla", + importResultArchive: "Nəticə arxivini idxal et", + importedResultArchive: "İdxal edilmiş nəticələr", + resultArchiveExported: "Nəticələr ixrac edildi", + resultArchiveImported: "Nəticələr idxal edildi", + resultArchiveUnavailable: "İxrac etmək üçün yadda saxlanmış nəticə yoxdur", + resultArchiveImportInvalid: "Bu nəticə arxivini açmaq mümkün olmadı", + resultArchiveExportFailed: "Nəticələri ixrac etmək mümkün olmadı: {message}", + resultArchiveImportFailed: "Nəticələri idxal etmək mümkün olmadı: {message}", + scrollLeft: "Vərəqləri sola sürüşdür", + scrollRight: "Vərəqləri sağa sürüşdür", + openTabs: "Açıq vərəqlər", + openInNewWindow: "Yeni pəncərədə aç", + returnToMainWindow: "Əsas pəncərəyə qayıt", + dragBackToMain: "Bu tutacağı əsas pəncərəyə sürüklə", + detachedCloseTitle: "Ayrılmış pəncərəni bağla", + detachedCloseMessage: "Bu SQL vərəqində yadda saxlanmamış dəyişikliklər var. Ayrılmış vərəqi bağlayıb silməzdən əvvəl onları yadda saxlamaq istəyirsiniz?", + detachedTabUnavailable: "Ayrılmış vərəq artıq mövcud deyil.", + openInNewWindowFailed: "Ayrılmış pəncərəni açmaq mümkün olmadı.", + minimizeWindow: "Kiçilt", + maximizeWindow: "Böyüt", + closeWindow: "Bağla", + searchOpenTabs: "Açıq vərəqləri axtar...", + collapseTabBar: "Vərəq zolağını yığ", + expandTabBar: "Vərəq zolağını genişləndir", + switcherTitle: "Vərəqi dəyiş", + switcherHint: "irəliləmək üçün basmağa davam edin, keçmək üçün buraxın", + noMatchingTabs: "Uyğun vərəq yoxdur", + fixedTabs: "Sabit vərəqlər", + openDataTabs: "Açıq cədvəllər", + editGroupTitle: "Qrupu redaktə et: {name}", + groupName: "Qrupun adı", + groupColor: "Qrupun rəngi", + groupColorAuto: "Standart rəngdən istifadə et", + groupColorCustom: "Fərdi rəng seç", + resetGroup: "Sıfırla", + settingsSaveFailed: "Vərəq parametrlərini yadda saxlamaq mümkün olmadı: {message}", + }, + databaseBrowser: { + search: "Verilənlər bazalarını axtar...", + empty: "Verilənlər bazası tapılmadı", + loadFailed: "Verilənlər bazalarını yükləmək mümkün olmadı: {message}", + defaultCharset: "Simvol dəsti", + defaultCollation: "Müqayisə qaydası", + }, + gridfsBrowser: { + bucketCount: "saxlama bölmələri", + fileCount: "fayllar", + name: "Ad", + totalSize: "Ölçü", + chunkSize: "Hissənin ölçüsü", + uploadDate: "Yükləmə tarixi", + contentType: "Məzmun növü", + metadata: "Metaverilənlər", + selectBucket: "Baxmaq və ya açmaq üçün GridFS saxlama bölməsi seçin.", + selectFile: "Baxmaq və ya idarə etmək üçün GridFS faylı seçin.", + emptyBuckets: "GridFS saxlama bölməsi tapılmadı. Faylları saxlamağa başlamaq üçün birini yaradın.", + emptyFiles: "Bu saxlama bölməsində hələ fayl yoxdur. Başlamaq üçün fayl yükləyin.", + createBucket: "Yeni saxlama bölməsi", + openBucket: "Saxlama bölməsini aç", + deleteBucket: "Saxlama bölməsini sil", + createTitle: "GridFS saxlama bölməsi yarat", + deleteTitle: "GridFS saxlama bölməsini sil", + deleteMessage: "Seçilmiş GridFS saxlama bölməsi və içindəki bütün fayllar silinsin?", + bucketName: "Saxlama bölməsinin adı", + bucketNamePlaceholder: "example_bucket", + bucketCreated: "{bucket} saxlama bölməsi yaradıldı.", + bucketDeleted: "{bucket} saxlama bölməsi silindi.", + uploadFile: "Fayl yüklə", + downloadFile: "Faylı endir", + downloadSelected: "Seçilənləri endir", + deleteFile: "Faylı sil", + selectedCount: "{count} seçilib", + deleteFileTitle: "GridFS faylını sil", + deleteFileMessage: "Seçilmiş fayl bu GridFS saxlama bölməsindən silinsin?", + fileUploaded: "{fileName} yükləndi.", + fileDeleted: "{fileName} silindi.", + }, + executionSummary: { + empty: "Xülasə yoxdur", + executing: "İcra edilir...", + finished: "İcra tamamlandı", + statement: "Əmr", + sql: "SQL", + status: "Vəziyyət", + type: "Növ", + rows: "Sətirlər", + affected: "Təsirlənən", + time: "Vaxt", + success: "Uğurlu", + error: "Xəta", + returnedTable: "{count} sütunlu nəticə cədvəli qaytarıldı", + noTable: "Nəticə cədvəli qaytarılmadı", + noSql: "SQL mövcud deyil", + navigationHint: "SQL-ə önbaxış üçün sətrə klikləyin; redaktorda ona keçmək üçün iki dəfə klikləyin.", + recoveryPrompt: "#{statement} əmri uğursuz oldu; {count} əmr işlədilmədi.", + stop: "Dayandır", + retry: "Yenidən cəhd et", + skipAndContinue: "Ötür və davam et", + skipAll: "Bütün xətaları ötür", + skipAllHint: "Davam et və bu dəstdəki sonrakı xətaları avtomatik ötür", + statuses: { + pending: "Gözləyir", + running: "İşləyir", + success: "Uğurlu", + error: "Xəta", + skipped: "İşlədilmədi", + cancelled: "Ləğv edildi", + }, + }, + queryMessages: { + empty: "Mesaj yoxdur", + code: "Kod: {code}", + }, + chart: { + title: "Diaqram", + type: "Növ", + line: "Xətti", + bar: "Sütunlu", + pie: "Dairəvi", + noNumericData: "Diaqram qurmaq üçün ədədi verilənlər yoxdur", + }, + grid: { + rows: "{count} sətir", + totalRows: "Cəmi {count} sətir", + loadedRows: "{count} sətir yükləndi", + totalRowCount: "(cəmi {count})", + totalRowCountWithAction: "({button}cəmi {count})", + totalRowCountAtLeast: "(cəmi ən azı {count})", + totalRowCountEstimated: "(~{count})", + totalRowCountLoading: "(sayılır...)", + loadingMore: "Daha çox verilən yüklənir...", + pageJumpLoading: "{page} nömrəli səhifəyə keçilir", + pageJumpProgress: "Tamamlanmış sorğular: {current}/{total}", + esDeepPageJumpConfirmTitle: "Elasticsearch-də uzaq səhifəyə keçidi təsdiqlə", + esDeepPageJumpConfirmMessage: + "Elasticsearch search_after birbaşa səhifəyə keçə bilmir. DBX çatışmayan kursorları ardıcıllıqla əldə etməlidir və geriyə keçid 1-ci səhifədən yenidən başlayır. {page} nömrəli səhifəyə keçid zamanı {requests} sorğu göndəriləcəyi gözlənilir. Bu, uzun çəkə və klasterin yükünü artıra bilər. Davam edilsin?", + esDeepPageJumpContinue: "Davam et", + allLoaded: "hamısı yükləndi", + calculateTotalRows: "Sətirlərin ümumi sayını hesabla", + calculateTotalRowsInline: "(sətirlərin ümumi sayını hesabla)", + calculateTotalRowsFailed: "Saymaq mümkün olmadı: {message}", + rowsAffected: "{count} sətir təsirləndi", + querySuccess: "Sorğu uğurla icra edildi", + noRows: "Verilənlər yoxdur", + noRowsDescription: "Bu nəticə dəstində qeyd yoxdur.", + noSearchResults: "Uyğunluq yoxdur", + noSearchResultsDescription: "Başqa açar söz sınayın.", + noFilteredRows: "Süzgəcə uyğun sətir yoxdur", + noFilteredRowsDescription: "Axtarış mətnini və ya sətir vəziyyəti süzgəcini dəyişin.", + copy: "Kopyala", + copyExtractorSmart: "Ağıllı kopyalama", + copyExtractorRaw: "Xana mətni", + copyExtractorWithHeaders: "Başlıqlarla {format}", + copyExtractorOneRow: "Bir sətir", + copyExtractorJsonArray: "JSON massivi", + copyExtractorSqlInList: "SQL IN siyahısı", + copyExtractorSqlInserts: "SQL INSERT əmrləri", + copyExtractorSqlInsertsWithPrimaryKeys: "SQL INSERT əmrləri (əsas açarlarla)", + copyExtractorSqlInsertsWithoutPrimaryKeys: "SQL INSERT əmrləri (əsas açarlarsız)", + copyExtractorSqlUpdates: "SQL UPDATE əmrləri", + copyExtractorSqlSelect: "SQL SELECT", + copyExtractorWhereClause: "WHERE ifadəsi", + copyExtractorPipeSeparated: "Şaquli xətlə ayrılmış", + copyExtractorPretty: "Formatlanmış cədvəl", + copyExtractorConfigure: "Verilənləri çıxarma vasitələrini tənzimlə…", + copyExtractorDefaultFormat: "Standart kopyalama davranışı", + copyExtractorFormat: "Çıxarma vasitəsi", + copyExtractorColumnSeparator: "Sütun ayırıcısı", + copyExtractorRowSeparator: "Sətir ayırıcısı", + copyExtractorNullText: "NULL mətni", + copyExtractorQuote: "Dırnaq işarəsi", + copyExtractorQuotePolicy: "Dırnağa alma", + copyExtractorQuoteMinimal: "Lazım olduqda", + copyExtractorQuoteAlways: "Həmişə", + copyExtractorQuoteNever: "Heç vaxt", + copyExtractorIncludeHeader: "Sütun başlığını daxil et", + copyExtractorIncludeRowHeader: "Sətir nömrələrini daxil et", + copyExtractorSkipComputed: "Hesablanan sütunları ötür", + copyExtractorSkipGenerated: "Avtomatik yaradılan sütunları ötür", + copyExtractorExcludePrimaryKeys: "Əsas açarları istisna et", + copyExtractorInsertMode: "INSERT əmrləri", + copyExtractorInsertMerged: "Sətirləri birləşdir", + copyExtractorInsertRowByRow: "Hər sətir üçün bir əmr", + copyExtractorPrettyJson: "JSON-u oxunaqlı formatla", + copyExtractorCamelCaseJsonFields: "snake_case sahələrini camelCase formasına çevir", + copyExtractorPreview: "Önbaxış (cari seçim)", + copyExtractorEmptySelection: "Çıxarma vasitəsinin nəticəsinə önbaxış üçün verilənləri seçin.", + copyExtractorUnsupportedSelection: "Bu çıxarma vasitəsi hər sətirdə eyni sütunların seçilməsini tələb edir.", + copyExtractorPreviewTruncated: "Seçilmiş {count} sətrin ilk 100 sətrinə önbaxış göstərilir.", + copyExtractorWarningOmittedColumns: "Kopyalanmış nəticəyə bu sütunlar daxil edilmədi: {columns}.", + copyExtractorWarningDuplicateJsonColumns: "Verilənlərin itirilməsinin qarşısını almaq üçün təkrarlanan JSON sütun adları dəyişdirildi.", + copyExtractorValidation: { + "column-separator-empty": "Sütun ayırıcısı boş olmamalıdır.", + "row-separator-empty": "Sətir ayırıcısı boş olmamalıdır.", + "separator-too-long": "Ayırıcılar ən çox 8 simvoldan ibarət ola bilər.", + "null-text-too-long": "NULL mətni ən çox 64 simvoldan ibarət ola bilər.", + "separators-overlap": "Sütun və sətir ayırıcıları üst-üstə düşməməlidir.", + "invalid-quote": "Dırnaq işarəsi dəqiq bir simvol olmalıdır.", + "quote-conflicts": "Dırnaq işarəsi sütun və ya sətir ayırıcısının tərkibində olmamalıdır.", + }, + mongoJsonPreview: "JSON önbaxışı", + mongoJsonPreviewEmpty: "Önbaxış üçün MongoDB sənədi seçin.", + copyJson: "JSON-u kopyala", + copyDdl: "DDL-i kopyala", + hoverSearchPlaceholder: "Sütunları axtar…", + hoverSearchNoResult: "Uyğun sütun yoxdur", + copyCell: "Xananı kopyala", + copyRow: "Bütün sətri kopyala (JSON obyekti)", + copyColumnJson: "Sütunu kopyala (JSON)", + copyColumnNames: "Sütun adlarını kopyala", + copyColumnNamesSelected: "Seçilmiş sütun adlarını kopyala ({count})", + copyColumnNamesTitle: "Sütun adlarını kopyala ({count})", + copyColumnNamesSeparator: "Sütun ayırıcısı", + copyColumnNamesQuote: "Sütun adlarını dırnağa al", + copyColumnNamesShowComment: "Şərhə görə göstər", + copyColumnNamesPreview: "Önbaxış", + copyAll: "Hamısını kopyala (TSV)", + selectionSum: "SUM: {value}", + selectionAverage: "AVG: {value}", + selectionCells: "{count} xana", + clearSelection: "Seçimi təmizlə", + export: "İxrac et", + exportCsv: "CSV-yə ixrac et", + exportXlsx: "XLSX-ə ixrac et", + exportXlsxWithSql: "SQL ilə XLSX-ə ixrac et", + exportCurrentPageCsv: "Cari səhifəni CSV kimi ixrac et", + exportCurrentPageXlsx: "Cari səhifəni XLSX kimi ixrac et", + exportCurrentPageXlsxWithSql: "Cari səhifəni SQL ilə XLSX kimi ixrac et", + exportCurrentPageJson: "Cari səhifəni JSON kimi ixrac et", + exportCurrentPageMarkdown: "Cari səhifəni Markdown kimi ixrac et", + exportCurrentPageSql: "Cari səhifəni SQL INSERT kimi ixrac et", + exportCurrentPageTxt: "Cari səhifəni TXT kimi ixrac et", + exportCurrentResultCsv: "Cari nəticə dəstinin bütün verilənlərini CSV kimi ixrac et", + exportCurrentResultXlsx: "Cari nəticə dəstinin bütün verilənlərini XLSX kimi ixrac et", + exportCurrentResultXlsxWithSql: "Cari nəticə dəstinin bütün verilənlərini SQL ilə XLSX kimi ixrac et", + exportCurrentResultJson: "Cari nəticə dəstinin bütün verilənlərini JSON kimi ixrac et", + exportCurrentResultMarkdown: "Cari nəticə dəstinin bütün verilənlərini Markdown kimi ixrac et", + exportCurrentResultSql: "Cari nəticə dəstinin bütün verilənlərini SQL INSERT kimi ixrac et", + exportCurrentResultTxt: "Cari nəticə dəstinin bütün verilənlərini TXT kimi ixrac et", + exportAllResultsXlsx: "Bu icranın bütün nəticə dəstlərini XLSX kimi ixrac et", + exportAllResultsXlsxWithSql: "Bu icranın bütün nəticə dəstlərini SQL ilə XLSX kimi ixrac et", + exportJson: "JSON-a ixrac et", + exportMarkdown: "Markdown-a ixrac et", + exportSql: "SQL INSERT kimi ixrac et", + sqlInsertModeTitle: "SQL INSERT ixrac rejimi", + sqlInsertModePrompt: "Sətirlərin SQL INSERT faylına necə yazılacağını seçin:", + sqlInsertModeBatch: "Toplu əlavə etmə", + sqlInsertModeBatchDescription: "Daha kiçik fayllar və daha sürətli icra üçün hər INSERT əmrində bir neçə sətri birləşdirin.", + sqlInsertModeSingle: "Hər əmrdə bir sətir", + sqlInsertModeSingleDescription: "Ayrılıqda icranı və problemlərin aradan qaldırılmasını asanlaşdırmaq üçün hər sətirə bir tam INSERT əmri yazın.", + exportTxt: "TXT-yə ixrac et", + exportSelectedRowsCsv: "Seçilmiş sətirləri CSV kimi ixrac et", + exportSelectedRowsXlsx: "Seçilmiş sətirləri XLSX kimi ixrac et", + exportSelectedRowsXlsxWithSql: "Seçilmiş sətirləri SQL ilə XLSX kimi ixrac et", + exportSelectedRowsJson: "Seçilmiş sətirləri JSON kimi ixrac et", + exportSelectedRowsMarkdown: "Seçilmiş sətirləri Markdown kimi ixrac et", + exportSelectedRowsSql: "Seçilmiş sətirləri SQL INSERT kimi ixrac et", + exportSelectedRowsTxt: "Seçilmiş sətirləri TXT kimi ixrac et", + exported: "İxrac edildi", + exportFailed: "İxrac etmək mümkün olmadı: {message}", + xlsxHeaderTitle: "Başlıq formatı", + xlsxExportTitle: "İxrac seçimləri", + xlsxHeaderPrompt: "İxrac edilən Excel faylı üçün başlıq formatını seçin:", + xlsxHeaderOriginal: "Sütun adlarından başlıq kimi istifadə et", + xlsxHeaderComment: "Sütun şərhlərindən başlıq kimi istifadə et", + xlsxHeaderNameAndComment: "Sütun adlarından və şərhlərindən başlıq kimi istifadə et", + xlsxFilterPrompt: "İxrac edilən Excel faylına süzgəclərin daxil edilib-edilməyəcəyini seçin:", + xlsxIncludeAutoFilter: "Süzgəcləri daxil et", + copied: "Kopyalandı", + copyFailed: "Kopyalamaq mümkün olmadı: {message}", + previewSqlEmpty: "Önbaxış üçün gözləyən SQL dəyişikliyi yoxdur", + renderMode: "Göstərmə rejimi", + domRenderMode: "DOM", + canvasRenderMode: "Canvas", + renderModeHint: "Canvas göstərməsi ilə ehtiyat DOM cədvəli arasında keçid edin.", + tableFontFamily: "Cədvəl şrifti", + tableFontSize: "Cədvəl şriftinin ölçüsü", + filter: "Süzgəc", + conditionHistoryEmpty: "Hələ tarixçə yoxdur", + conditionHistoryNoMatches: "Tarixçədə uyğunluq yoxdur", + filterBuilder: "Süzgəclər", + filterBuilderTitle: "Süzgəclər", + filterBuilderHint: "Klikləməklə şərtlər qurun və onları WHERE giriş sahəsi ilə birləşdirin.", + filterView: "Süzgəc görünüşü", + filterQuickView: "Sürətli baxış", + filterConditionView: "Şərtlər görünüşü", + filterTextView: "Mətn görünüşü", + resizeFilterPanel: "Süzgəc panelinin ölçüsünü dəyiş", + filterConditionPanel: "Süzgəc şərtləri", + filterManualWhere: "Əl ilə WHERE", + filterSqlPreview: "SQL şərtinə önbaxış", + filterSqlPreviewEmpty: "Hələ etibarlı süzgəc şərti yoxdur", + filterSqlPreviewReady: "Şərt hazırdır; nəticələri yeniləmək üçün tətbiq edin", + copyFilterSql: "SQL şərtini kopyala", + filterSqlCopied: "SQL şərti kopyalandı", + filterBuilderSummary: "{count} qayda", + filterBuilderAddRule: "Qayda əlavə et", + filterBuilderEnableRule: "Qaydanı aktivləşdir", + filterBuilderDisableRule: "Qaydanı deaktiv et", + filterBuilderReorderRule: "Şərtin sırasını dəyişmək üçün sürükləyin və ya ox düymələrindən istifadə edin", + filterBuilderColumn: "Sütun", + filterBuilderSearchColumns: "Sütunları axtar...", + filterBuilderNoMatchingColumns: "Uyğun sütun yoxdur", + filterBuilderValue: "Dəyər", + filterBuilderTextValue: "", + filterBuilderValueTypeAuto: "Avtomatik", + filterBuilderValueTypeString: "Mətn", + filterBuilderValueTypeNumber: "Ədəd", + filterBuilderValueTypeBoolean: "Məntiqi", + filterBuilderValueTypeObjectId: "ObjectId", + filterBuilderValueTypeDate: "Tarix", + filterBuilderValueTypeInt32: "Int32", + filterBuilderValueTypeInt64: "Int64", + filterBuilderValueTypeDecimal128: "Decimal128", + filterBuilderValueTypeJson: "JSON", + filterBuilderValueShortcutHint: "Shift+Enter ilə qayda əlavə etmək olar", + filterBuilderValues: "Dəyərlər (vergül və ya yeni sətirlə ayrılmış)", + filterBuilderRangeStart: "Başlanğıc dəyər", + filterBuilderRangeEnd: "Son dəyər", + filterBuilderNoValue: "Dəyər lazım deyil", + filterBuilderEmpty: "Sətirləri süzməyə başlamaq üçün qayda əlavə edin.", + resetFilterBuilder: "Qaydaları sıfırla", + filterBuilderEquals: "Bərabərdir", + filterBuilderNotEquals: "Bərabər deyil", + filterBuilderContains: "Ehtiva edir", + filterBuilderNotContains: "Ehtiva etmir", + filterBuilderBeginsWith: "Bununla başlayır", + filterBuilderEndsWith: "Bununla bitir", + filterBuilderGreaterThan: "Böyükdür", + filterBuilderGreaterThanOrEqual: "Böyükdür və ya bərabərdir", + filterBuilderLessThan: "Kiçikdir", + filterBuilderLessThanOrEqual: "Kiçikdir və ya bərabərdir", + filterBuilderIn: "Siyahıdadır", + filterBuilderNotIn: "Siyahıda deyil", + filterBuilderBetween: "Aralıq daxilindədir", + filterBuilderNotBetween: "Aralıq xaricindədir", + filterBuilderIsNull: "NULL-dur", + filterBuilderIsNotNull: "NULL deyil", + filterBuilderIsBlank: "Boşdur (NULL və ya boş)", + filterBuilderIsNotBlank: "Boş deyil (NULL deyil və boş deyil)", + columnActions: "Sütun əməliyyatları", + localFilter: "Yerli dəyər süzgəci", + localFilterFor: "'{column}' üçün yerli dəyərlər", + databaseValueFilter: "Verilənlər bazası dəyərlərinin süzgəci", + databaseValueFilterFor: "'{column}' üçün verilənlər bazası dəyərləri", + columnFormatter: "Sütun formatlayıcısı", + columnFormatterActive: "Formatlanmış göstərmə aktivdir", + columnFormatterFor: "'{column}' üçün formatlayıcı", + columnFormatterHint: "Yalnız görünüşü formatlayır; ilkin dəyərlər dəyişməz qalır.", + formatterType: "Növ", + formatterDatetime: "Unix vaxt nişanı", + formatterJsonPath: "JSON yolu", + formatterMask: "Mətni maskala", + formatterForeignKeyDisplay: "Xarici açar etiketi", + formatterForeignKeyTarget: "İstinad edilən açar", + formatterForeignKeyManualHint: "Bu sütunun bir sütunlu xarici açarı yoxdur. İstinad edilən cədvəli və uyğun sütunu əl ilə seçin.", + formatterForeignKeySchema: "Sxem", + formatterForeignKeySchemaPlaceholder: "Sxem seçin", + formatterForeignKeySearchSchema: "Sxemləri axtar...", + formatterForeignKeyNoSchemas: "Mövcud sxem yoxdur", + formatterForeignKeyTable: "İstinad edilən cədvəl", + formatterForeignKeyTablePlaceholder: "İstinad edilən cədvəl seçin", + formatterForeignKeySearchTable: "İstinad edilən cədvəlləri axtar...", + formatterForeignKeyNoTables: "İstinad edilən cədvəl mövcud deyil", + formatterForeignKeyReferenceColumn: "Uyğun sütun", + formatterForeignKeyReferenceColumnPlaceholder: "Bu dəyərə uyğun sütunu seçin", + formatterForeignKeyReferenceMetadataUnavailable: "Uyğun sütunun unikallığını yoxlamaq mümkün olmadı: {error}", + formatterForeignKeyReferenceInvalid: "Bu sütun yoxdur və ya unikal açar və cari bərabərlik süzgəci onun unikallığına zəmanət vermir. Başqa sütun seçin.", + formatterForeignKeyReferenceUnavailable: "Hədəf cədvəldə istifadə edilə bilən unikal açar yoxdur. Mürəkkəb unikal açar üçün digər sütunu bərabərlik süzgəci ilə sabitləyin.", + formatterForeignKeyDisplayColumn: "Göstərilən sütun", + formatterForeignKeyDisplayColumnPlaceholder: "Göstəriləcək sütunu seçin", + formatterForeignKeyFilter: "İstinad edilən sətirləri məhdudlaşdır", + formatterForeignKeyFilterColumnPlaceholder: "Süzgəc sütunu seçin", + formatterForeignKeyHint: "Cari səhifədəki uyğun açarların etiketlərini yükləyir. Redaktə, süzgəc, sıralama, kopyalama və ixrac zamanı ilkin dəyərlərdən istifadə davam edir.", + formatterCustomTemplate: "Fərdi şablon", + formatterTimestampUnit: "Vaxt nişanı vahidi", + formatterUnitAuto: "Avtomatik", + formatterUnitSeconds: "Saniyə", + formatterUnitMilliseconds: "Millisaniyə", + formatterDatetimePattern: "Tarix və vaxt şablonu", + formatterDatetimePatternPlaceholder: "Tarix və vaxt şablonunu seçin və ya daxil edin", + formatterDatetimePatternEmpty: "Standart ISO8601 formatı", + formatterDatetimeTimezone: "Saat qurşağı", + formatterDatetimeTimezonePlaceholder: "Saat qurşağı seçin", + formatterJsonPathInput: "JSON yolu", + formatterMaskPrefix: "Görünən prefiks", + formatterMaskSuffix: "Görünən suffiks", + formatterSavedCustom: "Yadda saxlanmış şablonlar", + formatterNewCustom: "Yeni şablon", + formatterDeleteCustom: "Şablonu sil", + formatterDeleteCustomMessage: '"{name}" silinsin? Bu şablondan istifadə edən bütün sütunların formatlaması təmizlənəcək.', + formatterCustomName: "Şablonun adı", + formatterCustomNamePlaceholder: "Nümunə: İstifadəçi etiketi", + formatterCustomTemplateInput: "Şablon", + formatterCustomTemplateHint: "Mövcud dəyişənlər: ${value}, ${upper}, ${lower}, ${length}. Siyahıda yadda saxlamaq üçün ona ad verin.", + formatterPreview: "Önbaxış", + saveFormatter: "Yadda saxla", + clearFormatter: "Təmizlə", + searchValues: "Dəyərləri axtar...", + loadingValues: "Dəyərlər yüklənir...", + serverValuesLimited: "İlk {count} dəyər göstərilir", + filterTypedValue: "'{value}' dəyərindən istifadə et", + value: "Dəyər", + count: "Say", + applyFilter: "Süzgəci tətbiq et", + clearLocalFilters: "Yerli dəyər süzgəclərini təmizlə", + clearLocalFiltersShort: "Yerli süzgəcləri təmizlə", + localFiltersActive: "{count} yerli dəyər süzgəci", + localFilterMoreValues: " +{count} əlavə", + columnVisibility: "Sütunlar", + columnVisibilityHint: "Ən azı bir sütun görünən qalır.", + columnReorderHint: "Sütunların sırasını dəyişmək üçün sürükləyin.", + columnReorderSearchHint: "Sütunların sırasını dəyişmək üçün axtarışı təmizləyin.", + searchColumns: "Sütunları axtar...", + dragColumnToReorder: "Sıranı dəyişmək üçün sütun başlığını sürükləyin", + invertColumnVisibility: "Tərsinə çevir", + resetColumnOrder: "Sıranı sıfırla", + showAllColumns: "Hamısını göstər", + viewOptions: "Görünüş seçimləri", + resultRunDisplayMode: "Nəticə vərəqləri", + resultRunDisplayList: "Siyahı", + resultRunDisplayTabs: "Yan-yana", + hideNullColumns: "NULL sütunlarını gizlət", + hideNullColumnsHint: "Cari nəticədə bütün dəyərləri NULL olan sütunları göstər və ya gizlət.", + searchMode: "Axtarış rejimi", + searchModeHint: "Ctrl+F düymələrinin uyğun sətirləri süzməsini, yoxsa bütün sətirləri göstərib uyğunluqları vurğulamasını seçin.", + searchModeFilter: "Süzgəc", + searchModeHighlight: "Vurğulama", + colorizeDataTypes: "Verilən növlərinin rəngləri", + numericColumnAlign: "Ədədi sütunun düzləndirilməsi", + numericColumnAlignLeft: "Sola", + numericColumnAlignRight: "Sağa", + booleanDisplayMode: "Məntiqi dəyərlərin göstərilməsi", + booleanDisplayCheckbox: "İşarə qutusu", + booleanDisplayDropdown: "Açılan siyahı", + moreValues: "Daha {count} dəyər var, nəticələri daraltmaq üçün yazmağa davam edin", + filterByValue: "Bu dəyərə görə süz", + filterExcludeValue: "Bu dəyəri istisna et", + filterLike: "Dəyəri ehtiva edir", + filterNotLike: "Ehtiva etmir", + filterLessThan: "Dəyərdən kiçikdir", + filterGreaterThan: "Dəyərdən böyükdür", + filterIsNull: "NULL dəyərləri göstər", + filterIsNotNull: "NULL olmayan dəyərləri göstər", + clearFilter: "Süzgəci təmizlə", + sort: "Sırala", + sortAscending: "Artan sıra ilə sırala", + sortDescending: "Azalan sıra ilə sırala", + sortCurrentPageAscending: "Cari səhifəni artan sıra ilə sırala", + sortCurrentPageDescending: "Cari səhifəni azalan sıra ilə sırala", + sortDatabaseAscending: "Verilənlər bazasını artan sıra ilə sırala", + sortDatabaseDescending: "Verilənlər bazasını azalan sıra ilə sırala", + clearSort: "Sıralamanı təmizlə", + freezeToColumn: "Bu sütuna qədər sabitlə", + freezeSelectedColumns: "Seçilmiş sütunları sabitlə", + unfreezeColumns: "Sütunların sabitlənməsini ləğv et", + pasted: "Yerləşdirildi!", + batchAppendPasteNotEditable: "Bu nəticəni redaktə etmək mümkün deyil.", + batchAppendPasteInvalidTarget: "Yerləşdirməzdən əvvəl boş yeni sətrin nömrəsini seçin.", + batchAppendPasteTargetNotEmpty: "Seçilmiş yeni sətirdə artıq verilənlər var.", + batchAppendPasteEmpty: "Mübadilə buferində əlavə ediləcək sətir yoxdur.", + batchAppendPasteReadonlyColumn: "Yerləşdirilən verilənlərdə redaktə edilə bilməyən sütun var.", + search: "Axtarış...", + searchTruncatedValuesHint: "Bəzi uzun mətn/JSON dəyərləri göstərilərkən qısaldılır; axtarış yalnız yüklənmiş xana mətnini əhatə edir və bəzi uyğunluqları tapmaya bilər.", + searchOrWhere: "Axtarın və ya WHERE ifadəsi daxil edin...", + applyWhere: "WHERE ifadəsini tətbiq et", + filterRows: "Sətirləri süz", + filterAllRows: "Bütün sətirlər", + filterChangedRows: "Dəyişdirilmiş", + page: "Səhifə {page}", + jumpToPage: "Səhifəyə keç", + rowsPerPage: "Səhifədəki sətir sayı", + customRowsPerPage: "Fərdi sətir sayı", + applyPageSize: "Tətbiq et", + save: "Yadda saxla", + discard: "Dəyişiklikləri at", + dismiss: "Bağla", + addRow: "Sətir əlavə et", + insertMultipleRows: "Bir neçə sətir əlavə et…", + insertRowsTitle: "Bir neçə sətir əlavə et", + insertRowsDescription: "Bu sayda yadda saxlanmamış qaralama sətir yaradın. Yadda saxlayarkən boş sətirlər nəzərə alınmır; yadda saxlandıqdan sonra göstərilmə sırası cari sorğuya uyğun olur.", + insertRowCountLabel: "Sətir sayı", + insertRowCountInvalid: "0-dan böyük tam ədəd daxil edin.", + insertRowsMaxHint: "Ən çox {max} sətir.", + insertRowsConfirm: "Əlavə et", + insertAboveSelected: "Seçilmiş sətrin üstünə əlavə et", + insertBelowSelected: "Seçilmiş sətrin altına əlavə et", + insertRowPositionLabel: "Mövqe", + insertPositionAbove: "Seçilmiş sətrin üstündə", + insertPositionBelow: "Seçilmiş sətrin altında", + insertPositionEnd: "Verilənlərin sonunda", + quickEntryDraftPlaceholder: "Yeni", + cloneRow: "Yeni sətir kimi klonla", + deleteRow: "Sətri sil", + deleteRows: "{count} sətri sil", + cloneRows: "{count} sətri yeni sətirlər kimi klonla", + restoreRows: "{count} sətri bərpa et", + copyRows: "{count} sətri kopyala (JSON massivi)", + copyColumnsJson: "{count} sütunu kopyala (JSON)", + selectedRows: "{count} sətir seçilib", + restoreRow: "Sətri bərpa et", + statusClean: "Dəyişdirilməmiş", + statusNew: "Yeni elementlər", + statusEdited: "Yenilənmiş elementlər", + statusDeleted: "Silinmiş elementlər", + pendingChanges: "{count} gözləyir", + selectedCells: "{count} seçilib", + bulkEditSelection: "Seçimi toplu redaktə et", + bulkEditTitle: "Seçimi toplu redaktə et", + bulkEditDescription: "Seçilmiş {count} xanaya bu dəyəri təyin edin.", + bulkEditValuePlaceholder: "Dəyər və ya NULL", + applyBulkEdit: "Tətbiq et", + bulkEditSelectionScope: "Yalnız seçilmiş xanalar", + bulkEditSelectionScopeDescription: "Seçilmiş {count} xana üçün dəyişiklikləri hazırlayın.", + bulkEditConditionalScope: "Şərtə uyğun bütün sətirlər", + bulkEditConditionalScopeDescription: "Verdiyiniz şərtə uyğun gələn hər verilənlər bazası sətrində {column} sütununu yeniləyin.", + bulkEditConditionalConditionSource: "Uyğunluq şərti", + bulkEditConditionalUseCurrentFilter: "Cari cədvəl süzgəcindən istifadə et", + bulkEditConditionalUseCurrentFilterDescription: "Bu cədvələ hazırda tətbiq edilən verilənlər bazası şərtini saxlayın.", + bulkEditConditionalBuildFilter: "Uyğunluq şərtlərini təyin et", + bulkEditConditionalBuildFilterDescription: "SQL yazmadan sütunları, operatorları və dəyərləri seçin.", + bulkEditConditionalAdvancedWhere: "Qabaqcıl: WHERE SQL", + bulkEditConditionalAdvancedWhereDescription: "Fərdi SQL şərti yazın.", + conditionalBulkEditPreviewCount: "Təsirlənən sətirlərə önbaxış et", + conditionalBulkEditPreviewingCount: "Önbaxış hazırlanır…", + conditionalBulkEditPreviewCountResult: "Təxminən {count} təsirlənən sətir", + conditionalBulkEditPreviewCountStale: "Şərtlər dəyişdi. Yenidən önbaxış edin.", + conditionalBulkEditPreviewCountFailed: "Təsirlənən sətirlərə önbaxış etmək mümkün olmadı: {message}", + bulkEditConditionalWhere: "WHERE şərti (tələb olunur)", + bulkEditConditionalWherePlaceholder: "Məsələn: tenant_id = 1 AND status = 'pending'", + bulkEditConditionalWhereDescription: "WHERE ifadəsini və ya yalnız onun şərtini daxil edin. Mövcud olduqda aktiv cədvəl süzgəci əvvəlcədən doldurulur.", + conditionalBulkEditUnavailable: "Bu seçim və ya süzgəc üçün şərtli toplu redaktə artıq mövcud deyil.", + conditionalBulkEditConditionRequired: "Bütün uyğun sətirləri yeniləməzdən əvvəl ən azı bir uyğunluq şərti təyin edin.", + conditionalBulkEditPrepareFailed: "Şərtli yeniləməni hazırlamaq mümkün olmadı: {message}", + conditionalBulkEditConfirmTitle: "Şərtli toplu yeniləməni təsdiqlə", + conditionalBulkEditConfirmMessage: "Bu əməliyyat icra anında şərtə uyğun gələn hər sətirə dərhal tətbiq edilir. Yüklənməmiş sətirlər də daxildir və DBX onlar üçün etibarlı geri qaytarma əməliyyatı yarada bilmir.", + conditionalBulkEditConfirm: "Yeniləməni icra et", + conditionalBulkEditAppliedCount: "{count} uyğun sətir yeniləndi", + conditionalBulkEditApplied: "Uyğun sətirlər yeniləndi", + conditionalBulkEditPendingChanges: "Şərtə uyğun bütün sətirləri yeniləməzdən əvvəl cari gözləyən dəyişiklikləri yadda saxlayın və ya atın.", + generateValue: "Dəyər yarat", + generateEmptyString: "Boş mətn", + generateNull: "NULL", + generateCurrentDatetime: "Cari tarix və vaxt", + generateCurrentDate: "Cari tarix", + generateUuid: "UUID", + generateIncrementId: "Artan ID", + generateSnowflakeId: "Snowflake ID", + generateSequenceDescription: "Seçilmiş {count} xana üçün ardıcıl dəyərlər yaradın. Başlanğıc dəyəri daxil edin.", + generateStartInvalid: "Başlanğıc dəyər tam ədəd olmalıdır", + generatedValuesApplied: "{count} dəyər yaradıldı", + cellDetails: "Xananın təfərrüatları", + cellDetailLayoutBottom: "Aşağıya köçür", + cellDetailLayoutRight: "Sağa köçür", + collapseCellDetailMetadata: "Xananın metaverilənlərini yığ", + expandCellDetailMetadata: "Xananın metaverilənlərini genişləndir", + openCellDetailsDialog: "Xananın təfərrüatlarını aç", + rowDetails: "Sətrin təfərrüatları", + rowDetailsFor: "{row} nömrəli sətrin təfərrüatları", + openRowDetailsDialog: "Sətrin təfərrüatlarını aç", + openColumnDetailsDialog: "Sütunun təfərrüatlarını aç", + columnDetailsFor: "{column} sütununun təfərrüatları", + columnsCount: "{count} sütun", + rowCount: "Sətirlər", + rowsCount: "{count} sətir", + fieldIndex: "№", + cellValue: "Dəyər", + valueEditor: "Dəyər redaktoru", + hexViewer: "Onaltılıq baxış vasitəsi", + hexViewerByteCount: "{count} bayt", + hexViewerOffset: "Sürüşmə", + hexViewerHex: "Onaltılıq", + hexViewerAscii: "ASCII", + hexViewerEmpty: "Göstəriləcək ikilik bayt yoxdur.", + imagePreview: "Şəkil önbaxışı", + imageLoadFailed: "Şəkli yükləmək mümkün olmadı", + geometryPreview: "Həndəsə önbaxışı", + layerPreview: "Qat önbaxışı", + layerPreviewSkipped: "{count} obyekt ötürüldü", + layerPreviewNoSupportedCrs: "Önbaxış mümkün deyil: koordinat sistemi yoxdur və ya dəstəklənmir", + layerPreviewNoGeometryData: "Önbaxış mümkün deyil: etibarlı həndəsi verilənlər yoxdur", + layerPreviewLabel: "Etiket", + layerPreviewExport: "Şəkli ixrac et", + layerPreviewMaximize: "Böyüt", + layerPreviewRestore: "Bərpa et", + layerPreviewLoading: "Xəritə yüklənir...", + layerPreviewCustomCrs: "Fərdi EPSG…", + layerPreviewCustomCrsPlaceholder: "EPSG kodu", + layerPreviewUnsupportedCrs: "Dəstəklənməyən koordinat sistemi: EPSG:{srid}", + layerPreviewCrsManual: "Koordinat sistemi: əl ilə", + layerPreviewCrsDetected: "Koordinat sistemi: aşkar edilib", + layerPreviewCrsAssumed: "Koordinat sistemi: WGS 84 qəbul edilib", + layerPreviewCustomBasemap: "Fərdi əsas xəritə", + layerPreviewCustomBasemapAction: "Fərdi əsas xəritə…", + layerPreviewCustomBasemapTitle: "Fərdi əsas xəritə", + layerPreviewCustomBasemapName: "Ad", + layerPreviewCustomBasemapNamePlaceholder: "məsələn, Gaode küçələri", + layerPreviewCustomBasemapHint: "{z}, {x} və {y} istifadə edən XYZ xəritə fraqmenti URL-i daxil edin. İstəyə bağlı üst qat URL-i Tianditu annotasiyaları kimi etiketlər üçün faydalıdır.", + layerPreviewCustomBasemapUrl: "Xəritə fraqmentinin URL-i", + layerPreviewCustomBasemapOverlayUrl: "Üst qatın URL-i", + layerPreviewCustomBasemapAttribution: "Mənbə istinadı", + layerPreviewCustomBasemapMaxZoom: "Maksimum yaxınlaşdırma", + layerPreviewCustomBasemapOptional: "İstəyə bağlı", + layerPreviewCustomBasemapApply: "Tətbiq et", + layerPreviewCustomBasemapInvalid: "Ad və {z}, {x}, {y} ehtiva edən etibarlı HTTP(S) XYZ xəritə fraqmenti URL-i daxil edin.", + insertRowsNotSupported: "Cari saxlama hədəfi sətir əlavə etməyi dəstəkləmir.", + zoomIn: "Yaxınlaşdır", + zoomOut: "Uzaqlaşdır", + fitImage: "Görünüşə sığdır", + openImage: "Şəkli aç", + columnName: "Sütun", + columnType: "Növ", + columnComment: "Şərh", + rowNumber: "Sətir", + valueLength: "Uzunluq", + nullValue: "NULL", + emptyStringValue: "Boş mətn", + noComment: "Şərh yoxdur", + formattedJson: "Formatlanmış JSON", + formatted: "Formatlanmış", + formattedValue: "Formatlanmış dəyər", + detailSearchPlaceholder: "Sahə və ya dəyər axtar…", + detailSearchNoMatch: "Uyğunluq yoxdur", + rawValue: "İlkin dəyər", + largeValuePreviewHint: "İlk {count} simvola önbaxış göstərilir. Kopyalama zamanı tam dəyərdən istifadə edilir.", + largeValueRowUnavailable: "Sətri verilənlər bazasında tapmaq mümkün olmadı. Önbaxış dəyərindən istifadə edilmədən əməliyyat ləğv edildi.", + largeValueColumnUnavailable: "Bu böyük dəyərin mənbə sütununu tapmaq mümkün olmadı.", + largeValueLoadFailed: "Böyük sahənin tam dəyərini yükləmək mümkün olmadı.", + largeValueNeedsStableKey: "Bu cədvəldə istifadə edilə bilən əsas açar yoxdur, ona görə böyük sahənin tam dəyərini təhlükəsiz yükləmək mümkün deyil. Əməliyyat ləğv edildi.", + largeValueLoadFailedWithMessage: "Böyük sahənin tam dəyərini yükləmək mümkün olmadı: {message}", + largeValueLocalSortUnavailable: "Bu sütunda böyük dəyərlərin önbaxışları var və onu önbaxış məzmununa görə yerli olaraq sıralamaq mümkün deyil. Verilənlər bazası sıralamasından istifadə edin.", + copyValue: "Dəyəri kopyala", + importBinaryValue: "Fayldan idxal et", + binaryImportApplied: "{count} bayt idxal edildi. Onları verilənlər bazasına yazmaq üçün dəyişiklikləri yadda saxlayın.", + binaryImportFailed: "Faylı idxal etmək mümkün olmadı: {message}", + binaryImportTooLarge: "Fayl çox böyükdür ({size}, hədd {limit}). Böyük faylların bir xanaya idxalı dəstəklənmir.", + downloadBinaryValue: "Dəyəri endir", + downloadSaved: "{path} yolunda yadda saxlanıldı", + downloadStarted: "Endirmə başladı: {fileName}", + binaryDownload: { + binary: "İlkin ikilik verilənlər", + utf8: "Dekodlaşdırılmış mətn (UTF-8)", + gbk: "Dekodlaşdırılmış mətn (GBK)", + }, + copyRowTsv: "Sətri kopyala (TSV)", + copyColumnValues: "Sütunu kopyala (JSON)", + copyColumnTsv: "Sütunu kopyala (TSV)", + editValue: "Dəyəri redaktə et", + formatJson: "JSON-u formatla", + compactJson: "JSON-u yığcamlaşdır", + compareJson: "Müqayisə et", + valueDiffTitle: "{column} JSON fərqi", + valueDiffFormat: "Müqayisə formatı", + valueDiffRaw: "İlkin", + valueDiffOriginal: "Orijinal", + valueDiffCurrent: "Cari", + copyOriginalValue: "Orijinal dəyəri kopyala", + copyCurrentValue: "Cari dəyəri kopyala", + cellValueCopied: "Xananın dəyəri kopyalandı", + valueDiffInvalidJson: "Etibarsız JSON; ilkin dəyər göstərilir: {message}", + valueDiffTooLarge: "Dəyər {limit} simvoldan çoxdur; ilkin dəyər göstərilir.", + formattedJsonEditWarning: "Formatlanmış JSON-u redaktə edirsiniz. Yadda saxlayarkən JSON kimi yazılacaq, buna görə orijinal format dəyişə bilər.", + setNull: "NULL təyin et", + restoreOriginalValue: "Orijinalı bərpa et", + copyColumnName: "Sütunun adını kopyala", + columnDragChipMany: "{names} ({count} sütun)", + copyAlterColumnSql: "SQL ALTER kimi kopyala", + alterSqlCopied: "SQL ALTER mübadilə buferinə kopyalandı", + alterSqlCopiedWithWarnings: "SQL ALTER mübadilə buferinə kopyalandı ({count} xəbərdarlıq)", + noAlterSqlAvailable: "Bu sütun üçün ALTER SQL mövcud deyil", + copyAlterSqlFailed: "Kopyalamaq mümkün olmadı: {message}", + copySqlCondition: "SQL şərtini kopyala", + transpose: "Sətri transponə et", + transposeMultiRowToggle: "Çoxsətirli", + transposeSingleRow: "Cari sətir", + transposeMultiRow: "Çoxsətirli", + transposeMultiRowHint: "Aktiv olduqda transponə görünüşü bir neçə sətir göstərir. Deaktiv olduqda yalnız cari sətri göstərir.", + rowsPerPageShort: " sətir", + columnDetails: "Sütunun təfərrüatları", + tableInfo: "Cədvəl haqqında məlumat", + pinTableInfo: "Cədvəl məlumatları panelini bərkit", + unpinTableInfo: "Cədvəl məlumatları panelinin bərkidilməsini ləğv et", + tableInfoColumns: "Sütunlar", + tableInfoIndexes: "İndekslər", + columnPrimaryIndex: "Əsas açar indeksi", + columnUniqueIndex: "Unikal indeks", + columnRegularIndex: "Adi indeks", + tableInfoForeignKeys: "Xarici açarlar", + foreignKeyNavigate: "{table} cədvəlinə keç", + openUrl: "URL-i brauzerdə aç", + tableInfoConstraints: "Məhdudiyyətlər", + tableInfoConstraintDisabled: "Deaktiv", + tableInfoConstraintNotValidated: "Yoxlanılmayıb", + tableInfoTriggers: "Triggerlər", + tableInfoNullable: "NULL qəbul edir", + tableInfoEmpty: "Metaverilənlər yoxdur", + tableInfoSearch: "Axtarış...", + tableOwner: "Sahib", + tableOwnerUnavailable: "Əlçatan deyil", + tableInfoNoResults: "Nəticə yoxdur", + goToColumn: "Sütuna keç", + columnWidth: "Sütun eni", + columnWidthCompact: "Yığcam", + columnWidthStandard: "Standart", + columnWidthComfortable: "Rahat", + searchColumn: "Sütun/şərh axtar...", + noColumnsFound: "Sütun tapılmadı", + queryError: "Sorğu xətası", + saveErrorTitle: "Dəyişiklikləri yadda saxlamaq alınmadı", + dataUnavailable: "Cədvəl məlumatları yenidən yüklənməlidir.", + cachedResultUnavailable: "Keşlənmiş nəticə yoxdur və ya uyğun deyil.", + reexecuteQuery: "Sorğunu yenidən işlət", + dataUnavailableHintPrefix: "Basın: ", + dataUnavailableHintSuffix: " və ya yenidən yükləmək üçün aşağıdakı Yenilə düyməsinə klikləyin.", + refresh: "Yenilə", + undoChange: "Dəyişikliyi geri al", + redoChange: "Dəyişikliyi təkrarla", + commit: "Təsdiqlə", + rollback: "Geri qaytar", + transactionSaveHint: "Gözləyən {count} dəyişikliyi tranzaksiya daxilində təsdiqləyin.", + nonTransactionalSaveHint: "Gözləyən {count} dəyişikliyi bir-bir yadda saxlayın. Biri uğursuz olarsa, əvvəlki uğurlu dəyişikliklər geri qaytarılmayacaq.", + keylessEditWarning: "Əsas açar yoxdur", + keylessEditWarningHint: "Bu cədvəlin əsas açarı yoxdur. Yeniləmə və silmə əməliyyatları WHERE şərtində sətrin bütün ilkin dəyərlərindən istifadə edir; tam eyni olan sətirlər birlikdə təsirlənə bilər.", + queryEditReadOnly: "Yalnız oxunan nəticə", + queryEditUnsupported: { + "not-select": "Yalnız SELECT sorğularının nəticələri birbaşa redaktə edilə bilər.", + cte: "WITH/CTE olan sorğular hələ redaktə edilə bilmir. Sadə, tək cədvəlli SELECT sorğusundan istifadə edin.", + "set-operation": "UNION, INTERSECT və ya EXCEPT nəticələri mənbə sətirləri ilə təhlükəsiz şəkildə uyğunlaşdırıla bilmir.", + aggregation: "DISTINCT, GROUP BY, HAVING və aqreqat nəticələri birbaşa redaktə edilə bilmir.", + "external-source": "Xarici fayllar və cədvəl funksiyalarının nəticələri birbaşa geri yazıla bilmir. Redaktədən əvvəl onları verilənlər bazası cədvəlinə idxal edin.", + "complex-source": "DBX bu nəticə üçün təhlükəsiz geri yazıla bilən yeganə hədəf cədvəli müəyyən edə bilmədi.", + "computed-columns": "Hesablanmış ifadələr və ya funksiya nəticələri geri yazıla bilmir. Əvəzində sütunların ilkin adlarını seçin.", + "no-table": "Redaktə edilə bilən mənbə cədvəli aşkar edilmədi.", + "no-primary-key": "Hədəf cədvəlin əsas açarı yoxdur, buna görə sətirlər təhlükəsiz şəkildə yenilənə və ya silinə bilmir.", + "primary-key-not-returned": "Nəticədə əsas açarın ilkin sütunu yoxdur. Onu ilkin sütun adı ilə daxil edin.", + "aliased-columns": "Nəticə sütunları ləqəblərdən və ya ifadələrdən istifadə edir. Redaktə edilə bilən sütunları ilkin adları ilə seçin.", + "metadata-unavailable": "DBX cədvəlin metaməlumatlarını yükləyə bilmədi, buna görə nəticənin redaktəsi deaktivdir.", + }, + sortUnsupported: "Bu SQL bütün nəticənin sıralanmasını dəstəkləmir. Tək SELECT sorğusu ilə yenidən cəhd edin.", + truncatedHint: "{count} sətir yükləndikdən sonra nəticələr kəsildi. Yüklənmiş məlumatlara baxmaq üçün aşağıdakı səhifələmədən istifadə edin; tam nəticənin ixracı verilənlər bazası sorğusunu yenidən işlədir.", + victoriaMetricsTruncatedHint: "Nəticələr yükləmə limitini aşdığı üçün yalnız ilk {count} sətir yükləndi. Səhifə üzrə sətir sayı yalnız yüklənmiş məlumatları səhifələyir; tam nəticəni əldə etmək üçün vaxt aralığını qısaldın və ya süzgəclər əlavə edin.", + cut: "Kəs", + }, + exportProgress: { + streamingUnsupported: "Bu sorğu üçün axınla ixrac dəstəklənmir. Sorğunu sadələşdirin və ya dəstəklənən drayverdən istifadə edin.", + agentSessionMissing: "Axınla ixrac üçün nəticə dəsti sessiyası tələb olunur, lakin bu drayver session_id qaytarmadı.", + title: "Cədvəl məlumatları ixrac edilir", + fetching: "Verilənlər bazasından məlumatlar alınır...", + writing: "Fayla yazılır...", + done: "İxrac tamamlandı!", + error: "İxrac alınmadı", + cancelled: "İxrac ləğv edildi.", + rowsCount: "{exported} / {total} sətir", + rowsExported: "{count} sətir ixrac edildi", + rowsShort: "sətir", + cancel: "Ləğv et", + minimize: "Arxa plana kiçilt", + openFolder: "Yerləşdiyi qovluğu aç", + openFolderFailed: "Qovluğu açmaq alınmadı: {message}", + close: "Bağla", + tooltip: "Arxa plan tapşırıqları", + failedTooltip: "{count} arxa plan tapşırığı uğursuz oldu | {count} arxa plan tapşırığı uğursuz oldu", + popoverTitle: "Arxa plan tapşırıqları", + noTasks: "Arxa plan tapşırığı yoxdur", + clearFinished: "Tamamlananları təmizlə", + showMore: "Daha {count} göstər", + showLess: "Daha az göstər", + delete: "Çıxar", + databaseExportTitle: "Verilənlər bazasının ixracı: {name}", + databaseBackupTitle: "Verilənlər bazasının ehtiyat nüsxəsi: {name}", + sqlFileTitle: "SQL faylı: {name}", + dataTransferTitle: "Məlumat ötürülməsi: {name}", + multiDbExecutionTitle: "Bir neçə verilənlər bazasında icra: {name}", + schemaDiffTitle: "Sxem müqayisəsi: {name}", + dataCompareTitle: "Məlumat müqayisəsi: {name}", + compareRunning: "İşləyir", + compareDone: "Tamamlandı", + compareError: "Xəta", + compareCancelled: "Ləğv edildi", + comparePhase: { + loadingTableLists: "Cədvəl siyahıları yüklənir", + loadingSourceDetails: "Mənbə təfərrüatları yüklənir", + loadingTargetDetails: "Hədəf təfərrüatları yüklənir", + loadingExtraObjects: "Əlavə obyektlər yüklənir", + comparing: "Müqayisə edilir", + generating: "Nəticə yaradılır", + complete: "Tamamlandı", + }, + schemaDiffSummary: "{count} fərqlənən obyekt", + dataCompareSummary: "{tables} cədvəl: {same} eyni, {different} fərqli, {failed} uğursuz · +{added} / -{removed} / ~{modified}", + multiDbTargets: "Hədəflər {completed}/{total}, uğurlu {success}, uğursuz {failed}", + openTask: "Tapşırığı aç", + objectsCount: "{current} / {total} obyekt", + tablesCount: "{current} / {total} cədvəl", + statementsCount: "{done} uğurlu, {failed} uğursuz", + elapsed: "Keçən vaxt: {duration}", + showFailureDetails: "Uğursuzluq təfərrüatları ({count})", + hideFailureDetails: "Uğursuzluq təfərrüatlarını gizlət", + failureDetailTruncated: "Xəta təfərrüatları kəsildi", + failureDetailsOmitted: "Əlavə {count} uğursuzluq təfərrüatı göstərilmir", + copyFailureDetail: "Uğursuzluq təfərrüatlarını kopyala", + failureDetailCopied: "Uğursuzluq təfərrüatları kopyalandı", + failureDetailCopyFailed: "Uğursuzluq təfərrüatlarını kopyalamaq alınmadı: {message}", + }, + welcome: { + title: "Verilənlər bazası iş sahəsi", + subtitle: "Sxemə baxmaq üçün solda əlaqə seçin və ya birbaşa sorğu vərəqi açın.", + connections: "Əlaqələr", + connected: "Əlaqə qurulub", + databaseTypes: "Verilənlər bazası növləri", + quickConnections: "Sürətli başlanğıc", + quickConnectionsHint: "Sorğu vərəqi açmaq üçün əlaqəyə klikləyin.", + shortcuts: "Qısayollar", + shortcutsHint: "Növbəti əməliyyata buradan başlayın.", + sqlHistory: "Sorğu tarixçəsi", + sqlHistoryEmpty: "SQL kitabxanasında hələ qeyd yoxdur", + sqlHistoryOpenCount: "{count} dəfə açılıb", + unknownConnection: "Naməlum əlaqə", + tip: "Əlavə əməliyyatlar üçün soldakı əlaqələri genişləndirib verilənlər bazalarına və ya cədvəllərə sağ klikləyə bilərsiniz.", + tipSidebar: "Məlumatlara baxmaq üçün soldakı cədvələ klikləyin", + tipExecute: "sorğunu icra etmək üçün", + fileOpened: "{name} açıldı", + fileOpenFailed: "{name} açılmadı: {message}", + mcpTitle: "AI agenti inteqrasiyası", + mcpDescription: "Daxili AI köməkçisindən əlavə, verilənlər bazalarınıza MCP vasitəsilə sorğu göndərmək üçün Claude Code, Cursor və digər proqramlaşdırma agentlərindən də istifadə edə bilərsiniz.", + mcpLearnMore: "Ətraflı öyrən", + }, + backendErrors: { + jdbc: { + connectionFailed: "Əməliyyat başlamazdan əvvəl verilənlər bazası ilə əlaqə qurulmadı (mərhələ: {stage}).", + connectionInterrupted: "Əməliyyat işləyərkən verilənlər bazası ilə əlaqə kəsildi (mərhələ: {stage}).", + operationTimedOut: "Verilənlər bazası əməliyyatının vaxtı bitdi (mərhələ: {stage}).", + operationCanceled: "Verilənlər bazası əməliyyatı ləğv edildi (mərhələ: {stage}).", + busyRetryLater: "Verilənlər bazası agenti məşğuldur; daha sonra yenidən cəhd edin (mərhələ: {stage}).", + runtimeReplaced: "Verilənlər bazası agentinin icra mühiti dəyişdirildi (mərhələ: {stage}).", + sqlFailed: "Verilənlər bazası SQL xətası qaytardı (mərhələ: {stage}).", + protocolFailed: "Verilənlər bazası agentinin protokolunda xəta baş verdi.", + contractInvalid: "Verilənlər bazası agenti etibarsız xəta müqaviləsi qaytardı.", + legacyFailure: "Verilənlər bazası agenti təsnif edilməmiş xəta qaytardı.", + }, + transaction: { + sessionExpired: "Əl ilə idarə olunan tranzaksiya {timeoutSecs} saniyə fəaliyyətsizlikdən sonra vaxtı bitdiyi üçün geri qaytarıldı. Yeni tranzaksiya avtomatik başladılacaq.", + }, + legacy: "Server tərəfi xəta qaytardı.", + unknown: "Server tərəfində gözlənilməz xəta baş verdi.", + }, + common: { + fileNotFound: "Fayl mövcud deyil: {path}", + language: "Dil", + loading: "Yüklənir...", + stopping: "Dayandırılır...", + close: "Bağla", + cancel: "Ləğv et", + confirm: "Təsdiqlə", + save: "Yadda saxla", + clear: "Təmizlə", + copy: "Kopyala", + import: "İdxal et", + remove: "Çıxar", + retry: "Yenidən cəhd et", + more: "Daha çox", + decrease: "Azalt", + increase: "Artır", + showPassword: "Parolu göstər", + hidePassword: "Parolu gizlət", + done: "Tamamlandı", + connection: "Əlaqə", + database: "Verilənlər bazası", + table: "Cədvəl", + view: "Görünüş", + materializedView: "Materiallaşdırılmış görünüş", + procedure: "Prosedur", + function: "Funksiya", + sequence: "Ardıcıllıq", + package: "Paket", + packageBody: "Paket gövdəsi", + noResults: "Nəticə yoxdur", + edit: "Redaktə et", + delete: "Sil", + disabled: "Deaktiv", + back: "Geri", + }, + dateTimePicker: { + open: "Tarix və vaxt seçicisini aç", + inputLabel: "Tarix və vaxt", + inputPlaceholder: "YYYY-MM-DD HH:mm:ss", + previousMonth: "Əvvəlki ay", + nextMonth: "Növbəti ay", + calendarLabel: "Təqvim", + timeLabel: "Vaxt", + hour: "Saat", + minute: "Dəqiqə", + second: "Saniyə", + cancel: "Ləğv et", + apply: "Tətbiq et", + invalidDateTime: "Düzgün tarix və vaxt daxil edin", + outOfRange: "Tarix və vaxt icazə verilən aralıqdan kənardadır", + }, + quickOpen: { + placeholder: "Əlaqələri, verilənlər bazalarını, cədvəlləri, SQL fayllarını və digər obyektləri axtar...", + emptyPlaceholder: "Axtarış üçün yazmağa başlayın", + noResults: "Nəticə tapılmadı", + results: "nəticə", + navigate: "Hərəkət et", + select: "Seç", + close: "Bağla", + sqlFile: "SQL faylı", + sqlLibraryFile: "SQL kitabxanası", + }, + explain: { + title: "İcra planı", + standardTable: "Cədvəl", + tree: "Ağac", + summary: "Xülasə", + running: "İcra planı oxunur...", + empty: "İcra planı yoxdur", + nodeCount: "{count} qovşaq", + node: "Qovşaq", + relation: "Cədvəl", + index: "İndeks", + cost: "Xərc", + rows: "Sətirlər", + details: "Təfərrüatlar", + canvas: "İş səthi", + costShare: "Xərc payı", + estRows: "Təxmini sətirlər", + actualRows: "Faktiki sətirlər", + zoomIn: "Yaxınlaşdır", + zoomOut: "Uzaqlaşdır", + zoomFit: "Sığdır", + legendHeat: "İstilik = ümumi xərcin faizi", + legendEdge: "Xəttin eni = sətirlər", + inspectorEmpty: "Qovşaq seçin", + catResult: "Nəticə", + catSort: "Sıralama", + catJoin: "Birləşdirmə", + catTscan: "Cədvəlin skan edilməsi", + catIscan: "İndeksin skan edilməsi", + catLookup: "Sətrin axtarılması", + catMat: "Materiallaşdır", + catAgg: "Aqreqasiya", + catXchg: "Paralellik", + catMod: "Dəyişdir", + catOther: "Digər", + unsupported: "Bu verilənlər bazası üçün icra planı hələ dəstəklənmir", + emptySql: "İzah ediləcək SQL yoxdur", + unsafe: "Bu ilk versiya yalnız SELECT / WITH / TABLE / VALUES əmrlərini izah edir", + }, + profile: { + title: "Profil", + emptyShards: "Fraqment profili məlumatları yoxdur", + emptyProfile: 'Bu cavabda `profile` bölməsi yoxdur. Axtarış gövdəsinə `"profile": true` əlavə edin və sorğunu yenidən işlədin.', + collapseAll: "Hamısını yığ", + expandAll: "Hamısını genişləndir", + selfTime: "Öz vaxtı", + totalTime: "Ümumi", + breakdown: "Mərhələlər", + criticalPath: "Kritik yol", + criticalPathTag: "Kritik", + shard: "Fraqment", + searches: "axtarış", + collapsedProtection: "Böyük profil: dərin qovşaqlar başlanğıcda yığılır ({nodes} qovşaq)", + legendSelfTime: "Öz vaxtına alt qovşaqlar daxil deyil; zolaq fraqmentin ümumi sorğu vaxtındakı payını göstərir.", + }, + lineage: { + title: "Sahənin mənşəyi", + open: "Sahənin mənşəyinə bax", + loading: "Metaməlumatlar oxunur {done}/{total}", + empty: "Əlaqəli mənşə tapılmadı", + noFiltered: "Cari süzgəclərə uyğun nəticə yoxdur", + targetField: "Cari sahə", + searchPlaceholder: "Cədvəlləri, sahələri, görünüşləri və ya SQL fraqmentlərini axtar...", + showing: "{shown}/{total} nəticə göstərilir", + all: "Hamısı", + certain: "Dəqiq", + likely: "Ehtimallı", + possible: "Mümkün", + queryHistory: "Sorğu tarixçəsi", + openTable: "Cədvəli aç", + copy: "Adı kopyala", + copied: "Kopyalandı", + kind: { + foreignKey: "Xarici açar", + viewReference: "Görünüş", + historyReference: "SQL tarixçəsi", + sameName: "Eyni ad", + }, + description: { + foreignKeyIncoming: "{target} xarici açar vasitəsilə cari sahəyə istinad edir. Bu, təsdiqlənmiş asılılıqdır.", + foreignKeyOutgoing: "Cari sahə xarici açar vasitəsilə {target} obyektinə istinad edir. Bu, təsdiqlənmiş asılılıqdır.", + viewLikely: "Görünüşün tərifində həm hədəf cədvəl, həm də sahə qeyd olunur; bu, adətən sorğu asılılığını göstərir.", + viewPossible: "Görünüşün tərifində eyniadlı sahə qeyd olunur, lakin hədəf cədvəl yoxdur, buna görə təsdiq tələb olunur.", + historyLikely: "Tarixçədəki SQL əmrində həm hədəf cədvəl, həm də sahə qeyd olunur. Ondan təsir təhlili üçün kontekst kimi istifadə edin.", + historyPossible: "Tarixçədəki SQL əmrində eyniadlı sahə qeyd olunur. Əlaqəli ola bilər, lakin kontekst tələb olunur.", + sameName: "Başqa cədvəldə eyniadlı sahə var. Bu, eyni işgüzar məna daşıya bilər, lakin təsdiqlənmiş verilənlər bazası asılılığı deyil.", + }, + cancel: "Ləğv et", + refresh: "Yenidən təhlil et", + }, + connectionGroup: { + createGroup: "Yeni qrup", + group: "Qrup", + groupNamePlaceholder: "Qrup adı", + selectConnection: "Əlaqə seç", + deselectConnection: "Əlaqənin seçimini ləğv et", + selectAllConnections: "Bütün əlaqələri seç", + deselectAllConnections: "Bütün əlaqələrin seçimini ləğv et", + selectedConnections: "{count} seçilib", + exitMultiSelect: "Seçimdən çıx", + renameGroup: "Qrupun adını dəyiş", + closeConnections: "Qrupdakı əlaqələri bağla ({count})", + deleteGroup: "Qrupu sil", + deleteSelectedGroups: "Seçilmiş {count} qrupu sil", + moveToGroup: "Qrupa köçür", + moveToNewGroup: "Yeni qrupa köçür", + ungrouped: "Qruplaşdırılmayıb", + ungroupedLabel: "Standart", + newGroup: "Yeni qrup...", + newGroupDefault: "Yeni qrup", + deleteGroupConfirmTitle: "Qrupu sil", + deleteGroupConfirmMessage: '"{name}" qrupu və onun bütün alt qrupları silinsin? Daxildəki əlaqələrin də silinib-silinməyəcəyini aşağıda seçin.', + deleteSelectedGroupsConfirmMessage: "Seçilmiş {count} qrup və onların bütün alt qrupları silinsin? Aşağıda onların daxilindəki əlaqələrin də silinib-silinməyəcəyini seçin.", + deleteConnectionsWithGroup: "Seçilmiş qrupların və onların alt qruplarının daxilindəki bütün əlaqələri də sil", + selectGroup: "Qrup seç", + deselectGroup: "Qrupun seçimini ləğv et", + }, + databaseSearch: { + title: "Verilənlər bazasında axtar", + open: "Verilənlər bazasında axtar", + keyword: "Açar söz", + keywordPlaceholder: "İstifadəçi ID-si, e-poçt, sifariş nömrəsi daxil edin...", + limitPerTable: "Hər cədvəl üzrə", + search: "Axtar", + searching: "Axtarılır", + stop: "Dayandır", + hint: "Cari verilənlər bazasındakı və ya sxemdəki adi cədvəlləri skan edir. İkili sütunlar ötürülür və eyni anda həddindən artıq məlumat yüklənməməsi üçün hər cədvələ limit qoyulur.", + loadingTables: "Cədvəl siyahısı oxunur...", + progress: "{done}/{total} cədvəl skan edilib", + resultCount: "{count} uyğunluq", + continueNextBatch: "Növbəti {count} cədvəli skan et", + scanAllRemaining: "Qalan {count} cədvəli skan et", + results: "Nəticələr", + openResult: "Aç", + waiting: "Uyğunluqlar gözlənilir...", + noResults: "Hələ uyğunluq yoxdur", + errors: "Bəzi cədvəllərdə əməliyyat uğursuz oldu", + }, + configExport: { + passphraseTitle: "Şifrələ və ixrac et", + passphraseImportTitle: "Faylın şifrəsini aç", + passphraseExportHint: "Əlaqə parollarını ixraca daxil etmək üçün şifrələmə parol ifadəsi təyin edin. İdxal üçün eyni parol ifadəsi lazım olacaq.", + passphraseImportHint: "Bu fayl şifrələnib. Şifrəsini açmaq üçün parol ifadəsini daxil edin, sonra idxal ediləcək əlaqələri seçin.", + passphrase: "Parol ifadəsi", + passphraseConfirm: "Parol ifadəsini təsdiqlə", + passphrasePlaceholder: "Parol ifadəsini daxil edin", + passphraseConfirmPlaceholder: "Parol ifadəsini yenidən daxil edin", + passphraseRequired: "Parol ifadəsi tələb olunur", + passphraseMismatch: "Parol ifadələri uyğun gəlmir", + passphraseTooShort: "Parol ifadəsi ən azı 4 simvoldan ibarət olmalıdır", + exportEncrypted: "Şifrələyərək ixrac et", + exportUnencrypted: "Şifrələmədən ixrac et", + unencryptedWarningTitle: "Şifrələmədən ixrac edilsin?", + unencryptedWarningDescription: + "Şifrələnməmiş konfiqurasiya faylında verilənlər bazası parolları, SSH tunelinin giriş məlumatları və digər həssas məlumatlar ola bilər. Fayla çıxışı olan hər kəs bu giriş məlumatlarını oxuya bilər. Bundan yalnız etibarlı mühitdə müvəqqəti köçürmə üçün istifadə edin.", + confirmUnencryptedExport: "Şifrələmədən ixrac et", + decryptImport: "Şifrəni aç", + wrongPassphrase: "Yanlış parol ifadəsi və ya zədələnmiş fayl", + cryptoUnavailable: "Bu brauzer kontekstində şifrələnmiş konfiqurasiyanın idxalı əlçatan deyil. HTTPS-dən, localhost-dan və ya DBX Desktop-dan istifadə edin.", + exportFailed: "Əlaqələri ixrac etmək alınmadı", + exportSuccess: "Əlaqələr uğurla ixrac edildi", + importSuccess: "{count} əlaqə idxal edildi", + importNavicatSuccess: "{count} Navicat əlaqəsi idxal edildi. Sınaqdan əvvəl parolu hələ boş olan əlaqələrin parollarını doldurun.", + importDatagripSuccess: "{count} DataGrip əlaqəsi idxal edildi, macOS Keychain-dən {filled} parol dolduruldu.", + importDatagripSelectFiles: "Lütfən, dataSources.xml (məcburi) və istəyə bağlı olaraq dataSources.local.xml / db-forest-config.xml seçin", + importDatagripDialogTitle: "DataGrip konfiqurasiya fayllarını seçin", + importDbeaverSuccess: "{count} DBeaver əlaqəsi idxal edildi. Sınaqdan əvvəl parolu hələ boş olan əlaqələrin parollarını doldurun.", + importNone: "İdxal ediləcək yeni əlaqə yoxdur", + importLayoutConfirm: "İdxal edilən faylda əlaqə qrupları var. Onlar tətbiq edilsin?", + importLayoutTitle: "Qrupları idxal et", + importLayoutApply: "Tətbiq et", + selectExportTitle: "İxrac ediləcək əlaqələri seçin", + selectImportTitle: "İdxal ediləcək əlaqələri seçin", + selectAll: "Hamısını seç", + deselectAll: "Hamısının seçimini ləğv et", + selectedCount: "{selected} / {total}", + next: "Növbəti", + importSelected: "{count} əlaqəni idxal et", + noConnections: "Əlçatan əlaqə yoxdur", + }, + ai: { + placeholder: "Sorğunuzu təbii dildə təsvir edin...", + settings: "AI parametrləri", + noConfig: "AI konfiqurasiya edilməyib. Lütfən, Parametrlər > AI bölməsində AI provayderinizi quraşdırın.", + provider: "Provayder", + providerCustom: "Fərdi", + builtinProviders: "Daxili dəstək", + partnerProviders: "Premium sponsorlar", + jalapenoSponsored: "$1 pulsuz kredit", + jalapenoDescription: "🎉 Aparıcı komandaların etibar etdiyi müəssisə səviyyəli AI artıq sizin üçün əlçatandır! Ən müasir modelləri 50% endirimlə sınayın və daha çox məbləğ yüklədikcə daha çox bonus kredit qazanın!", + hualongDescription: + "🐉 AI ilə intensiv işləyən tərtibatçılar üçün rəsmi mənbəli model vasitəçisi! Yoxlanıla bilən token səviyyəli hesablaşma, müəssisə müqavilələri və hesab-fakturalarla 100% orijinal Codex və Claude seriyaları.\n🎉$1 pulsuz kredit üçün DBX&HUALONG promo kodu ilə qeydiyyatdan keçin!", + visitPartner: "Tərəfdaşın saytına keç", + getApiKey: "API açarı əldə et", + providerStatusActive: "Aktiv", + providerStatusConfigured: "Konfiqurasiya edilib", + switchProvider: "Provayderi dəyiş", + model: "Model", + defaultModel: "Standart model", + browseModels: "Modellərə bax", + refreshModels: "Modelləri yenilə", + loadingModels: "Modellər yüklənir...", + modelLoadFailed: "Modelləri yükləmək alınmadı", + retry: "Yenidən cəhd et", + searchModels: "Modelləri axtar", + noModels: "Model yüklənməyib", + noModelMatch: "Uyğun model yoxdur", + selectModel: "Model seçin", + noModel: "Model konfiqurasiya edilməyib", + manualModel: "Model ID-sini əl ilə daxil et", + manualModelPlaceholder: "Model ID-si", + effort: "Səy", + providerDefault: "Provayderin standartı", + loadingEffort: "Səy səviyyələri yüklənir...", + effortLoadFailed: "Səy səviyyələrini yükləmək alınmadı", + effortEnabled: "Aktiv", + effortDisabled: "Deaktiv", + customEffortPlaceholder: "Səy dəyərini daxil edin", + effortUnsupported: "Bu model tənzimlənən səy səviyyəsini dəstəkləmir", + configNameEmpty: "Konfiqurasiya adı boş ola bilməz", + configNameExists: "'{name}' adlı konfiqurasiya artıq mövcuddur", + deepLinkInvalid: "AI konfiqurasiya keçidini açmaq mümkün deyil: {message}", + deepLinkClipboardTitle: "API açarını idxal et", + deepLinkClipboardPrompt: "API açarı mübadilə buferindən oxunsun?", + deepLinkClipboardEmpty: "Mübadilə buferində API açarı yoxdur. Onu əl ilə daxil edin.", + deepLinkClipboardInvalid: "Mübadilə buferində etibarlı təksətirli API açarı yoxdur. Onu əl ilə daxil edin.", + deepLinkClipboardReadFailed: "Mübadilə buferini oxumaq alınmadı: {message}", + + configList: "AI konfiqurasiyalarının siyahısı", + addConfig: "Konfiqurasiya əlavə et", + noAiConfigs: "AI konfiqurasiyası yoxdur", + setDefault: "Standart olaraq təyin et", + editConfig: "Konfiqurasiyanı redaktə et", + configName: "Konfiqurasiya adı", + configNamePlaceholder: "Konfiqurasiya adını daxil edin", + modelList: "Model siyahısı", + modelId: "Model ID-si", + modelDisplayName: "Göstərilən ad", + add: "Əlavə et", + fetching: "Alınır...", + fetchModelList: "Modelləri API-dən al", + default: "Standart", + deleteConfigTitle: "Konfiqurasiyanı sil", + deleteConfigConfirm: "Bu konfiqurasiya silinsin?", + modelListHint: "Modelləri provayderdən yükləmək üçün yenilə düyməsinə klikləyin.", + modelListUnsupported: "Bu provayder model siyahısının alınmasını dəstəkləmir.", + modelListEndpointRequired: "Modelləri yükləməzdən əvvəl son nöqtə ünvanını daxil edin.", + modelListApiKeyRequired: "Modelləri yükləməzdən əvvəl API açarı daxil edin.", + run: "İşlət", + readingSchema: "Sxem oxunur", + noConnection: "Bu vərəq üçün əlaqə əlçatan deyil", + noSql: "Emal ediləcək SQL yoxdur", + sqlPreview: "SQL önbaxışı", + copySql: "SQL-i kopyala", + copyCode: "Kodu kopyala", + executeSql: "SQL-i icra et", + tempRunSql: "Redaktoru dəyişdirmədən işlət", + copyAll: "Hamısını kopyala", + copyMessage: "Mesajı kopyala", + copied: "Kopyalandı", + copyTestResult: "Sınaq nəticəsini kopyala", + testErrorAuth: "Şəxsiyyətin təsdiqlənməsi və ya giriş alınmadı. API açarını, layihə icazələrini və API-nin əlçatanlığını yoxlayın.", + testErrorModelNotFound: "Model əlçatan deyil. Model ID-sini və hesabınızın giriş imkanını yoxlayın.", + testErrorRateLimit: "Sorğu tezliyi limiti və ya kvota aşıldı. Daha sonra yenidən cəhd edin və ya hesab kvotasını yoxlayın.", + testErrorTimeout: "Sorğunun vaxtı bitdi. Şəbəkəni, proksini və son nöqtəni yoxlayın.", + testErrorTokenLimit: "Çıxış token limiti tükəndiyi üçün görünən mətn yaradılmadı.", + testErrorSafety: "Gemini təhlükəsizlik siyasətinə əsasən təlimatı və ya cavabı blokladı.", + testErrorEmptyResponse: "Xidmət və ya proksi görünən mətn qaytarmadan axını bağladı.", + testErrorNetwork: "Şəbəkə əlaqəsi qurulmadı. Son nöqtəni və proksini yoxlayın.", + testErrorUnknown: "Sınaq təsnif edilməmiş səbəbdən uğursuz oldu.", + replace: "Redaktorun məzmununu əvəz et", + append: "Redaktora əlavə et", + apply: "Redaktora tətbiq et", + clear: "Söhbəti təmizlə", + maximize: "Maksimum böyüt", + restore: "Bərpa et", + welcome: "Nəyi sorğulamaq istədiyinizi deyin, SQL-i yazım", + requestFailed: "AI sorğusu uğursuz oldu", + requestCancelled: "Sorğu ləğv edildi", + backgroundRunCompleted: "AI cavabı arxa planda tamamlandı", + backgroundRunNeedsConfirmation: "Davam etmək üçün AI təsdiqinizi gözləyir", + recoveredDraftBanner: "Yenidən başlamazdan əvvəl növbəyə qoyulmuş sorğu bərpa edildi", + recoveredDraftHint: "Redaktə edib yenidən göndərin və ya çıxarın.", + discardDraft: "Qaralamanı çıxar", + runStatusRunning: "İşləyir", + runStatusWaitingToStart: "Başlamağı gözləyir", + runStatusAwaitingConfirmation: "Təsdiq gözləyir", + runStatusPendingDraft: "Giriş gözləyir", + runStatusCompleted: "Tamamlandı", + runStatusFailed: "Uğursuz oldu", + runStatusInterrupted: "Kəsildi", + runStatusCancelled: "Ləğv edildi", + runUnread: "Bu söhbətdə yeni yeniliklər var", + closeWithRunsTitle: "AI tapşırıqları hələ işləyir", + closeWithRunsDescription: "DBX-dən çıxış işləyən və ya növbədə olan {count} AI tapşırığını kəsəcək. Bu dialoqu bağlayıb onların tamamlanmasını gözləyə bilərsiniz.", + closeWithRunsQuit: "Çıx və kəs", + queueSend: "Göndərmək üçün növbəyə qoy", + queueSendHint: "Bu söhbət üçün tapşırıq hələ işləyir; mesaj o tamamlandıqda göndəriləcək", + inputQueued: "Mesaj cari tapşırıqdan sonra göndərilmək üçün növbəyə qoyuldu", + queuedInputWaiting: "Gözləyir — {text}", + queuedInputPending: "Göndərilmək üçün növbədədir — {text}", + sendQueuedInput: "Növbədəki mesajı göndər", + queuedInputEdit: "Növbədəki mesajı redaktə et", + queuedInputRemove: "Növbədəki mesajı çıxar", + rowQueuedInput: "Növbədəki giriş", + retryRound: "Bu mərhələni yenidən sına", + deleteConversation: "Söhbəti sil", + deleteActiveConversationTitle: "Söhbətin aktiv tapşırığı var", + deleteActiveConversationDescription: "Bu söhbətdə hələ işləyən və ya gözləyən tapşırıq var. Tapşırıq ləğv edilib söhbət silinsin, yoxsa saxlanılsın?", + cancelTaskAndDelete: "Tapşırığı ləğv et və söhbəti sil", + keepConversation: "Söhbəti saxla", + awayUpdatesDivider: "Siz uzaqda olarkən baş verən yeniliklər", + jumpToLatest: "Ən sonuncuya keç", + openPanel: "Paneli aç", + runRowPhaseTool: "{tool} işləyir", + runRowPhaseThinking: "Təhlil edilir…", + toolbarAwaitingConfirmation: "{count} AI tapşırığı təsdiqinizi gözləyir", + newChat: "Yeni söhbət", + thinking: "Düşünür...", + reasoningProcess: "Düşünmə prosesi", + chars: "simvol", + stopGenerating: "Yaratmanı dayandır", + scrollToBottom: "Aşağıya qayıt", + csvAttachmentSelect: "CSV əlavə et", + csvAttachmentInvalidType: "CSV faylı seçin.", + csvAttachmentEmpty: "CSV faylı boşdur.", + csvAttachmentReadFailed: "CSV faylını oxumaq mümkün olmadı.", + csvAttachmentTruncated: "CSV AI-yə göndərilməzdən əvvəl kəsildi.", + attachmentSelect: "Şəkil və ya mətn faylı əlavə et", + attachmentSelectHint: "Şəkillər və ya mətn faylları əlavə edin. Ən çox 4 şəkil (cəmi 12 MB) və 8 mətn faylı (cəmi 32,000 simvol).", + attachmentDropHint: "Qoşma əlavə etmək üçün faylları buraxın", + attachmentInvalidType: "PNG, JPEG, GIF və ya WebP şəkli seçin.", + attachmentReadFailed: "Qoşmanı oxumaq mümkün olmadı.", + attachmentImageTooLarge: "Şəkillər 5 MB və ya daha kiçik olmalıdır.", + attachmentImageLimit: "Eyni anda ən çox 4 şəkil əlavə edə bilərsiniz.", + attachmentImageTotalLimit: "Əlavə edilmiş şəkillərin ümumi ölçüsü 12 MB-dan çox ola bilməz.", + attachmentTextLimit: "Eyni anda ən çox 8 mətn faylı əlavə edə bilərsiniz.", + attachmentTextTotalLimit: "Əlavə edilmiş mətn ümumilikdə 32,000 simvoldan çox ola bilməz.", + attachmentFileTooLarge: "Buraxılan fayllar 5 MB və ya daha kiçik olmalıdır.", + attachmentTruncatedStatus: "Kəsilib", + attachmentEncoding: "Mətn kodlaşdırması", + attachmentEncodingReadFailed: "Bu kodlaşdırma ilə qoşmanı oxumaq mümkün olmadı.", + attachmentUnsupportedProvider: "Bu provayder əlaqəsi şəkil qoşmalarını göndərə bilmir. Şəkli çıxarın və ya şəkilləri dəstəkləyən provayder seçin.", + attachmentUnsupportedFormat: "Seçilmiş provayder bu şəkil formatını dəstəkləmir. Onu çıxarın və ya PNG, JPEG, WebP formatlarından istifadə edin.", + attachmentPreview: "Qoşmaya önbaxış", + attachmentUnavailableAfterReload: "Yenidən yükləmədən sonra məzmun əlçatan deyil; təkrar göndərilməyəcək", + attachmentUnsupportedDocument: "Bu fayl növü hələ dəstəklənmir. Əvəzində şəkillər və ya mətn əsaslı fayllar əlavə edin.", + tableMentionEmpty: "Uyğun cədvəl və ya SQL faylı yoxdur", + tableMentionPlaceholderHint: "Kontekst üçün cədvəlləri və ya SQL fayllarını qeyd etmək məqsədilə {'@'} yazın", + tableMentionTypes: { + table: "Cədvəl", + view: "Görünüş", + systemTable: "Sistem cədvəli", + temporaryTable: "Müvəqqəti cədvəl", + }, + modes: { + ask: "Soruş", + agent: "Agent", + }, + modeHints: { + ask: "SQL və izahları avtomatik işlətmədən yarat", + agent: "Məlumatları sorğulamaq və real nəticələrə əsasən cavab vermək üçün alətlərdən istifadə et", + }, + fixWithAi: "AI ilə düzəlt", + truncated: "Kontekst kəsildi", + contextSummary: "{database} · {tables} cədvəl", + autoSqlBlocked: "AI-nin yaratdığı SQL avtomatik icra üçün həddindən artıq riskli göründü. İşlətməzdən əvvəl onu əl ilə nəzərdən keçirin.", + writeSqlConfirmationRequired: "Bu SQL məlumatları və ya sxemi dəyişir. İcradan əvvəl diqqətlə nəzərdən keçirin.", + writeSqlConfirmationQuestion: "Bu SQL bir dəfə icra edilsin?", + writeSqlConfirmYes: "İcranı təsdiqlə", + writeSqlConfirmNo: "Ləğv et", + writeSqlConfirmationReplyYes: "Yuxarıda göstərilən SQL-i olduğu kimi bir dəfə icra et. Yenidən təsdiq istəmə.", + writeSqlConfirmationReplyNo: "Yuxarıda göstərilən SQL-i icra etmə. Söhbətə davam et.", + productionWriteBlocked: "AI istehsal mühitindəki verilənlər bazasında məlumat və ya sxem dəyişikliklərini icra edə bilməz. Bu SQL-i nəzərdən keçirin və DBX-də əl ilə işlədin.", + proposalConfirmReplyYes: "Yuxarıda indicə təklif etdiyin əməliyyatı icra et; yenidən təsdiq istəmə.", + proposalConfirmReplyNo: "Yuxarıda qeyd olunan əməliyyatı icra etmə; cari söhbətə davam et.", + proposalConfirmYes: "Bəli, davam et", + proposalConfirmNo: "Xeyr, təşəkkürlər", + proposalConfirmTitle: "Əməliyyatın təsdiqi tələb olunur", + agentSteps: { + generated: "SQL yaradıldı", + noSql: "SQL tapılmadı", + safe: "Təhlükəsizlik yoxlamasından keçdi", + needsConfirm: "Təsdiq tələb olunur", + blocked: "Bloklandı", + autoExecute: "İşləməyə hazırdır", + notRequested: "İşlətmək istənilməyib", + skipped: "İşlədilmədi", + callingTool: "Alət çağırılır...", + executing: "İcra edilir…", + toolDone: "Alət tamamlandı", + toolError: "Alət xətası", + executeSafe: "Təhlükəsizlik yoxlamasından keçdi · İcra edildi", + executeBlocked: "Təhlükəsizlik yoxlaması ilə bloklandı", + contextCompacted: "Kontekst sıxlaşdırıldı", + }, + agentStepTitles: { + riskCheck: "Risk yoxlaması: {action} · {category} · {environment} · {reasons}", + blocked: "İcra risk siyasəti ilə bloklandı. SQL-i əl ilə nəzərdən keçirin.", + requiresConfirmation: "Bu SQL icradan əvvəl təsdiq tələb edir.", + askMode: "Soruş rejimi SQL-i avtomatik işlətmir.", + unsupportedAction: "Cari AI əməliyyatı SQL-i avtomatik işlətmir.", + noSql: "Cavabda icra edilə bilən SQL kod bloku yox idi.", + notRequested: "İstifadəçi SQL-i işlətməyi istəməyib.", + skipped: "Bu addım işlədilmədi.", + }, + status: { + waitingModel: "Modelin cavabı gözlənilir · {elapsed} san işləyir", + waitingModelLive: "Modelin cavabı gözlənilir", + generating: "Cavab yaradılır · {elapsed} san işləyir", + generatingLive: "Cavab yaradılır", + runningTool: "Gediş {turn} · {tool} işləyir · {elapsed} san", + runningToolAction: "· İşləyir", + runningToolElapsed: "· {elapsed} san", + turnBadge: "Gediş {turn}", + idle: "Bu addım gözlənilir · Son fəaliyyət {idle} san əvvəl", + idleLive: "Bu addım gözlənilir", + idleWithTool: "Bu addım gözlənilir · Son fəaliyyət {idle} san əvvəl · {tool} işləyir", + longRunningHint: "Bu, gözləniləndən daha uzun çəkir. Gözləməyə davam edə və ya dayandıra bilərsiniz.", + cancelling: "Ləğv edilir…", + toolLabels: { + executeQuery: "Sorğunu icra et", + executeSql: "SQL-i icra et", + listTables: "Cədvəlləri siyahıla", + getColumns: "Sütunları al", + getCurrentTime: "Cari vaxtı al", + explainQuery: "Sorğu planını izah et", + getSampleData: "Nümunə məlumatları al", + listCollections: "Kolleksiyaları siyahıla", + browseCollection: "Kolleksiyaya bax", + }, + }, + proxy: "Proksi", + proxyEnable: "AI sorğularını proksi vasitəsilə göndər", + proxyUrl: "Proksi URL-i", + sslVerification: "SSL sertifikatı", + skipTlsVerify: "SSL sertifikatının yoxlanmasını ötür", + skipTlsVerifyHint: "Yalnız özünün imzaladığı sertifikatları olan etibarlı son nöqtələr üçün ötürün. Yoxlamanın ötürülməsi trafiki ələ keçirilməyə qarşı həssas edir.", + customHeaders: "Fərdi başlıqlar", + customHeadersAdd: "Başlıq əlavə et", + customHeadersHint: "Əlavə başlıqlar modellərin aşkarlanması, əlaqə sınaqları, söhbət və Agent sorğuları ilə göndərilir. Başlıq dəyərləri həssas ola bilər.", + customHeadersNamePlaceholder: "X-Tenant-ID", + customHeadersValuePlaceholder: "tenant-a", + customHeadersInvalidName: "Etibarsız başlıq adı: {name}", + customHeadersInvalidValue: "Bu başlıq üçün etibarsız dəyər: {name}", + customHeadersDuplicate: "Təkrarlanan başlıq adı: {name}", + customHeadersReserved: "Bu başlıq DBX tərəfindən idarə olunur: {name}", + enableThinking: "Düşünmə", + enableThinkingOn: "Aktiv", + enableThinkingOff: "Deaktiv", + enableThinkingHint: "Bu seçim yalnız /chat/completions API-lərində və dəstəklənən modellərdə qüvvəyə minir. Deaktiv edildikdə token istifadəsini əhəmiyyətli dərəcədə azalda bilər, lakin yaradılan nəticələrin keyfiyyəti bir qədər aşağı düşə bilər.", + anthropicMessagesHint: "Anthropic Messages ilə uyğun API-lər adətən /v1/messages yolundan istifadə edir.", + openAiCompatibleEndpointHint: "OpenAI ilə uyğun API-lərin əksəriyyəti /v1 yol prefiksini tələb edir.", + contextWindow: "Kontekst pəncərəsi", + contextWindowAuto: "Avtomatik (model adından müəyyən et)", + contextWindowHint: "Tokenlər. Avtomatik müəyyən etmək üçün boş saxlayın. Yerli/fərdi modellər üçün əl ilə təyin edin.", + maxOutputTokens: "Maksimum çıxış tokenləri", + maxOutputTokensAuto: "Avtomatik (əməliyyata görə)", + maxOutputTokensHint: "Provayderə göndərilən, hər konfiqurasiya üçün istəyə bağlı limit. Aralıq: {min}–{max}. Düşünmə sorğuları yenə də ən azı 8192 token istifadə edir.", + maxRetries: "Maksimum təkrar cəhd sayı", + maxRetriesHint: "Sorğu tezliyi limitləri, vaxt bitmələri və müvəqqəti şəbəkə xətaları zamanı yenidən cəhd edin. 0 = heç vaxt, maksimum 10.", + maxRetriesGlobal: "Maksimum təkrar cəhd sayı", + maxRetriesGlobalDescription: "Müvəqqəti API xətaları (sorğu tezliyi limitləri, vaxt bitmələri, qısamüddətli şəbəkə kəsilmələri) zamanı avtomatik təkrar cəhdlərin sayı. API əsaslı bütün AI provayderlərinə tətbiq olunur. CLI provayderlərinə təsir etmir.", + maxRetriesRange: "{min}–{max}, standart {default}", + maxRetriesSaved: "Maksimum təkrar cəhd sayı yadda saxlanıldı", + codexCliPath: "Codex CLI yolu", + codexCliPathHint: "PATH-dən codex əmrindən istifadə etmək üçün boş saxlayın. codex login ilə ayrıca daxil olun.", + codexCliPathEnvError: "Codex CLI yolu yalnız icra faylının yolunu ehtiva etməlidir. Mühit dəyişənlərini aşağıda əlavə edin.", + codexCliEnv: "Mühit dəyişənləri", + codexCliEnvAdd: "Dəyişən əlavə et", + codexCliEnvHint: "Codex CLI-yə ötürülən istəyə bağlı dəyişənlər, məsələn, HTTPS_PROXY, NO_PROXY, SSL_CERT_FILE və ya CODEX_CA_CERTIFICATE.", + codexCliEnvKeyPlaceholder: "HTTPS_PROXY", + codexCliEnvValuePlaceholder: "http://proxy:9800", + codexCliEnvInvalidName: "Etibarsız mühit dəyişəni adı: {name}", + codexCliEnvReservedName: "{name} MCP serveri üçün DBX tərəfindən idarə olunur və burada təyin edilə bilməz.", + cliMcpRequiredTitle: "DBX MCP Server tələb olunur", + cliMcpRequiredDescription: "{provider} verilənlər bazası sxeminə və sorğu alətlərinə daxil olmaq üçün DBX MCP Server-dən istifadə edir. Bu provayderi AI köməkçisində istifadə etməzdən əvvəl onu quraşdırın.", + cliPath: "{provider} yolu", + cliPathHint: "PATH-dən {command} əmrindən istifadə etmək üçün boş saxlayın. {loginCommand} ilə ayrıca daxil olun.", + cliPathEnvError: "{provider} yolu yalnız icra faylının yolunu ehtiva etməlidir. Mühit dəyişənlərini aşağıda əlavə edin.", + cliEnv: "Mühit dəyişənləri", + cliEnvAdd: "Dəyişən əlavə et", + cliEnvHint: "{provider} üçün ötürülən istəyə bağlı dəyişənlər, məsələn, HTTPS_PROXY, NO_PROXY və ya SSL_CERT_FILE.", + cliEnvKeyPlaceholder: "HTTPS_PROXY", + cliEnvValuePlaceholder: "http://proxy:9800", + cliEnvInvalidName: "Etibarsız mühit dəyişəni adı: {name}", + cliEnvReservedName: "{name} MCP serveri üçün DBX tərəfindən idarə olunur və burada təyin edilə bilməz.", + codexMcpRequiredTitle: "DBX MCP Server tələb olunur", + codexMcpRequiredDescription: "Codex CLI verilənlər bazası sxeminə və sorğu alətlərinə daxil olmaq üçün DBX MCP Server-dən istifadə edir. Codex-i AI köməkçisində istifadə etməzdən əvvəl onu quraşdırın.", + reasoningLevel: "Mühakimə səviyyəsi", + reasoningLevelDefault: "Standart", + reasoningLevelMinimal: "Minimal", + reasoningLevelLow: "Aşağı", + reasoningLevelMedium: "Orta", + reasoningLevelHigh: "Yüksək", + reasoningLevelXhigh: "Çox yüksək", + reasoningLevelMax: "Maksimum", + reasoningLevelHint: "Codex CLI-nin model_reasoning_effort parametrini idarə edir. Standart seçim Codex konfiqurasiyanızdan istifadə edir.", + claudeCodeEffortHint: "Mövcud səviyyələr seçilmiş model tərəfindən yerli Claude Code CLI vasitəsilə bildirilir.", + claudeCodeEffortUnavailable: "Seçilmiş model tənzimlənə bilən səy səviyyələrini bildirmir. Claude Code öz standart səviyyəsindən istifadə edəcək.", + cliErrors: { + code: "Xəta kodu: {code}", + details: "Diaqnostika təfərrüatları:", + reportHint: "Bu problemi bildirərkən aşağıdakı xəta kodunu və diaqnostika təfərrüatlarını daxil edin.", + claudeCodeNotInstalled: "Claude Code CLI tapılmadı. Claude Code-u quraşdırın və ya Parametrlər > AI bölməsində icra faylının yolunu təyin edin.", + claudeCodeCliPathInvalid: "Claude Code CLI yolu yanlışdır. Yalnız Claude icra faylını seçin və mühit dəyişənlərini ayrıca konfiqurasiya edin.", + claudeCodeEnvInvalid: "Claude Code CLI mühit dəyişəninin adı yanlışdır. HTTPS_PROXY kimi adlardan istifadə edin.", + claudeCodeEnvReserved: "DBX tərəfindən idarə olunan MCP mühit dəyişəni əvəz edilib. DBX_MCP_* dəyişənlərini provayder konfiqurasiyasından çıxarın.", + claudeCodeNotAuthenticated: "Claude Code CLI autentifikasiyadan keçməyib. Terminalda `claude auth login` işlədin və yenidən cəhd edin.", + claudeCodeMcpConfigInvalid: "Claude Code DBX MCP konfiqurasiyasını oxuya və ya təhlil edə bilmədi. Claude Code CLI versiyasını və icra faylının yolunu yoxlayın.", + dbxMcpMissing: "Uyğun DBX MCP Server quraşdırması tapılmadı. Parametrlər > MCP bölməsini yoxlayın, sonra onu yenidən quraşdırın və ya yeniləyin.", + claudeCodeMcpStartupFailed: "Claude Code MCP konfiqurasiyasını yüklədi, lakin DBX MCP Server-i başlada bilmədi. Parametrlər > MCP bölməsini və aşağıdakı diaqnostikanı yoxlayın.", + claudeCodeCommandLineTooLong: "Windows Claude Code əmrini çox uzun olduğu üçün rədd etdi. DBX-i yeniləyin və yaradılmış MCP konfiqurasiya faylından istifadə edərək yenidən cəhd edin.", + claudeCodeRunFailed: "Claude Code CLI gözlənilmədən bağlandı. Problemli icra faylını və ya CLI çıxışını müəyyən etmək üçün aşağıdakı xəta kodundan və diaqnostikadan istifadə edin.", + piAgentNotInstalled: "Pi Coding Agent tapılmadı. Pi-ni quraşdırın və ya Parametrlər > AI bölməsində icra faylının yolunu təyin edin.", + piAgentCliPathInvalid: "Pi Coding Agent yolu yanlışdır. Yalnız Pi icra faylını seçin və mühit dəyişənlərini ayrıca konfiqurasiya edin.", + piAgentEnvInvalid: "Pi Coding Agent mühit dəyişəninin adı yanlışdır. HTTPS_PROXY kimi adlardan istifadə edin.", + piAgentEnvReserved: "DBX tərəfindən idarə olunan Pi və ya MCP mühit dəyişəni əvəz edilib. DBX_PI_* və DBX_MCP_* dəyişənlərini provayder konfiqurasiyasından çıxarın.", + piAgentNotAuthenticated: "Pi Coding Agent üçün autentifikasiyadan keçmiş model provayderi yoxdur. Pi vasitəsilə provayderi konfiqurasiya edin və ya ona daxil olun, sonra yenidən cəhd edin.", + piAgentMcpStartupFailed: "Pi məhdud əhatəli DBX MCP körpüsünü başlada bilmədi. Parametrlər > MCP bölməsini və aşağıdakı diaqnostikanı yoxlayın.", + piAgentTimeout: "Pi Coding Agent əməliyyatın gözləmə müddəti bitənədək cavab vermədi.", + piAgentProtocolError: "Pi Coding Agent yanlış RPC cavabı qaytardı. Pi versiyasını və aşağıdakı diaqnostikanı yoxlayın.", + piAgentModelInvalid: "Seçilmiş Pi model identifikatoru yanlışdır. Model siyahısını yeniləyin və provayder/model seçin.", + piAgentRunFailed: "Pi Coding Agent gözlənilmədən bağlandı. Problemli icra faylını və ya CLI çıxışını müəyyən etmək üçün aşağıdakı xəta kodundan və diaqnostikadan istifadə edin.", + openCodeNotInstalled: "OpenCode CLI tapılmadı. OpenCode-u quraşdırın və ya Parametrlər > AI bölməsində icra faylının yolunu təyin edin.", + openCodeCliPathInvalid: "OpenCode CLI yolu yanlışdır. Yalnız OpenCode icra faylını seçin və mühit dəyişənlərini ayrıca konfiqurasiya edin.", + openCodeEnvInvalid: "OpenCode CLI mühit dəyişəninin adı yanlışdır. HTTPS_PROXY kimi adlardan istifadə edin.", + openCodeEnvReserved: "OpenCode və ya DBX tərəfindən idarə olunan mühit dəyişəni əvəz edilib. OPENCODE idarəetmə dəyişənlərini və DBX_MCP_* dəyişənlərini provayder konfiqurasiyasından çıxarın.", + openCodeNotAuthenticated: "OpenCode üçün autentifikasiyadan keçmiş model provayderi yoxdur. `opencode auth login` işlədin və ya OpenCode daxilində provayderi konfiqurasiya edin, sonra yenidən cəhd edin.", + openCodeMcpStartupFailed: "OpenCode məhdud əhatəli DBX MCP serverini başlada bilmədi. Parametrlər > MCP bölməsini və aşağıdakı diaqnostikanı yoxlayın.", + openCodeTimeout: "OpenCode CLI əməliyyatın gözləmə müddəti bitənədək cavab vermədi.", + openCodeProtocolError: "OpenCode CLI yanlış JSON hadisə axını qaytardı. OpenCode versiyasını və aşağıdakı diaqnostikanı yoxlayın.", + openCodeRunFailed: "OpenCode CLI gözlənilmədən bağlandı. Problemli icra faylını və ya CLI çıxışını müəyyən etmək üçün aşağıdakı xəta kodundan və diaqnostikadan istifadə edin.", + cursorNotInstalled: "Cursor CLI tapılmadı. Cursor CLI-ni quraşdırın və ya Parametrlər > AI bölməsində icra faylının yolunu təyin edin.", + cursorCliPathInvalid: "Cursor CLI yolu yanlışdır. Yalnız agent icra faylını seçin və mühit dəyişənlərini ayrıca konfiqurasiya edin.", + grokCliNotInstalled: "Grok CLI tapılmadı. Grok CLI-ni quraşdırın və ya Parametrlər > AI bölməsində icra faylının yolunu təyin edin.", + grokCliPathInvalid: "Grok CLI yolu yanlışdır. Yalnız grok icra faylını seçin və mühit dəyişənlərini ayrıca konfiqurasiya edin.", + grokCliEnvInvalid: "Grok CLI mühit dəyişəninin adı yanlışdır. HTTPS_PROXY kimi adlardan istifadə edin.", + grokCliEnvReserved: "DBX tərəfindən idarə olunan MCP mühit dəyişəni əvəz edilib. DBX_MCP_* dəyişənlərini provayder konfiqurasiyasından çıxarın.", + grokCliNotAuthenticated: "Grok CLI autentifikasiyadan keçməyib. Terminalda `grok login` işlədin və yenidən cəhd edin.", + grokCliMcpStartupFailed: "Grok MCP konfiqurasiyasını yüklədi, lakin DBX MCP Server-i başlada bilmədi. Parametrlər > MCP bölməsini və aşağıdakı diaqnostikanı yoxlayın.", + grokCliCommandLineTooLong: "Windows Grok CLI əmrini çox uzun olduğu üçün rədd etdi. DBX-i yeniləyin və yaradılmış sorğu faylından istifadə edərək yenidən cəhd edin.", + grokCliRunFailed: "Grok CLI gözlənilmədən bağlandı. Problemli icra faylını və ya CLI çıxışını müəyyən etmək üçün aşağıdakı xəta kodundan və diaqnostikadan istifadə edin.", + codeBuddyNotInstalled: "CodeBuddy Code CLI tapılmadı. CodeBuddy Code-u quraşdırın və ya Parametrlər > AI bölməsində icra faylının yolunu təyin edin.", + codeBuddyCliPathInvalid: "CodeBuddy Code CLI yolu yanlışdır. Yalnız codebuddy icra faylını seçin və mühit dəyişənlərini ayrıca konfiqurasiya edin.", + codeBuddyEnvInvalid: "CodeBuddy mühit dəyişəninin adı yanlışdır. HTTPS_PROXY kimi adlardan istifadə edin.", + codeBuddyEnvReserved: "DBX tərəfindən idarə olunan MCP mühit dəyişəni əvəz edilib. DBX_MCP_* dəyişənlərini provayder konfiqurasiyasından çıxarın.", + codeBuddyNotAuthenticated: "CodeBuddy Code autentifikasiyadan keçməyib. Terminalda `codebuddy` açın, daxil olun və yenidən cəhd edin.", + codeBuddyTimeout: "CodeBuddy Code CLI əməliyyatın gözləmə müddəti bitənədək cavab vermədi.", + codeBuddyMcpConfigInvalid: "CodeBuddy Code müvəqqəti DBX MCP konfiqurasiyasını oxuya bilmədi. Aşağıdakı diaqnostikanı yoxlayın.", + codeBuddyMcpStartupFailed: "CodeBuddy Code MCP konfiqurasiyasını yüklədi, lakin DBX MCP Server-i başlada bilmədi. Parametrlər > MCP bölməsini və aşağıdakı diaqnostikanı yoxlayın.", + codeBuddyProtocolError: "CodeBuddy Code yanlış idarəetmə cavabı və ya JSON hadisə axını qaytardı. CodeBuddy Code versiyasını və aşağıdakı diaqnostikanı yoxlayın.", + codeBuddyRunFailed: "CodeBuddy Code CLI gözlənilmədən bağlandı. Problemli icra faylını və ya CLI çıxışını müəyyən etmək üçün aşağıdakı xəta kodundan və diaqnostikadan istifadə edin.", + qoderNotInstalled: "Qoder CLI tapılmadı. Qoder CLI-ni quraşdırın və ya Parametrlər > AI bölməsində icra faylının yolunu təyin edin.", + qoderCliPathInvalid: "Qoder CLI yolu yanlışdır. Yalnız qodercli icra faylını seçin və mühit dəyişənlərini ayrıca konfiqurasiya edin.", + qoderEnvInvalid: "Qoder CLI mühit dəyişəninin adı yanlışdır. HTTPS_PROXY və ya QODER_PERSONAL_ACCESS_TOKEN kimi adlardan istifadə edin.", + qoderEnvReserved: "DBX tərəfindən idarə olunan MCP mühit dəyişəni əvəz edilib. DBX_MCP_* dəyişənlərini provayder konfiqurasiyasından çıxarın.", + qoderNotAuthenticated: "Qoder CLI autentifikasiyadan keçməyib. Terminalda `qodercli login` işlədin və ya QODER_PERSONAL_ACCESS_TOKEN dəyişənini konfiqurasiya edin, sonra yenidən cəhd edin.", + qoderTimeout: "Qoder CLI əməliyyatın gözləmə müddəti bitənədək cavab vermədi.", + qoderMcpConfigInvalid: "Qoder CLI müvəqqəti DBX MCP konfiqurasiyasını oxuya bilmədi. Qoder CLI versiyasını və aşağıdakı diaqnostikanı yoxlayın.", + qoderMcpStartupFailed: "Qoder CLI MCP konfiqurasiyasını yüklədi, lakin DBX MCP Server-i başlada bilmədi. Parametrlər > MCP bölməsini və aşağıdakı diaqnostikanı yoxlayın.", + qoderProtocolError: "Qoder CLI yanlış JSON hadisə axını qaytardı. Qoder CLI versiyasını və aşağıdakı diaqnostikanı yoxlayın.", + qoderRunFailed: "Qoder CLI gözlənilmədən bağlandı. Problemli icra faylını və ya CLI çıxışını müəyyən etmək üçün aşağıdakı xəta kodundan və diaqnostikadan istifadə edin.", + cursorEnvInvalid: "Cursor CLI mühit dəyişəninin adı yanlışdır. HTTPS_PROXY kimi adlardan istifadə edin.", + cursorEnvReserved: "Cursor və ya DBX tərəfindən idarə olunan mühit dəyişəni əvəz edilib. CURSOR_CONFIG_DIR, CURSOR_DATA_DIR və DBX_MCP_* dəyişənlərini provayder konfiqurasiyasından çıxarın.", + cursorNotAuthenticated: "Cursor CLI autentifikasiyadan keçməyib. Terminalda `agent login` işlədin və yenidən cəhd edin.", + cursorMcpStartupFailed: "Cursor məhdud əhatəli DBX MCP serverini başlada bilmədi. Parametrlər > MCP bölməsini və aşağıdakı diaqnostikanı yoxlayın.", + cursorTimeout: "Cursor CLI əməliyyatın gözləmə müddəti bitənədək cavab vermədi.", + cursorProtocolError: "Cursor CLI yanlış JSON hadisə axını qaytardı. Cursor CLI versiyasını və aşağıdakı diaqnostikanı yoxlayın.", + cursorRunFailed: "Cursor CLI gözlənilmədən bağlandı. Problemli icra faylını və ya CLI çıxışını müəyyən etmək üçün aşağıdakı xəta kodundan və diaqnostikadan istifadə edin.", + }, + actions: { + general: "Ümumi", + generate: "SQL yarat", + explain: "SQL-i izah et", + optimize: "SQL-i optimallaşdır", + fix: "Xətanı düzəlt", + convert: "Dialekti çevir", + sampleData: "Nümunə məlumatlar", + query: "Məlumatları sorğula", + exploreSchema: "Sxemi yoxla", + executeAndExplain: "İşlət və izah et", + generateNoExec: "Yarat (işlətmədən)", + }, + placeholders: { + general: "Mənə istənilən sualı verin...", + generate: "Nəyi sorğulamaq istədiyinizi təsvir edin, məsələn, son 7 gündə hər istifadəçinin sifarişləri", + explain: "İstəyə bağlı: nəyi anlamaq istədiyinizi əlavə edin", + optimize: "İstəyə bağlı: məqsəd əlavə edin, məsələn, cədvəlin tam skan edilməsini azaltmaq", + fix: "Xətanı yerləşdirın və ya gözlənilən nəticəni təsvir edin", + convert: "məsələn, PostgreSQL / MySQL / SQL Server dialektinə çevir", + sampleData: "Yaradılacaq nümunə məlumatları və ya sınaq əmrlərini təsvir edin", + query: "Nəyi sorğulamaq və ya saymaq lazım olduğunu təsvir edin, məsələn, bu ay bölgələr üzrə sifariş cəmləri", + exploreSchema: "Yoxlanılacaq cədvəli və ya strukturu təsvir edin, məsələn, orders cədvəlinin sütunları və indeksləri", + executeAndExplain: "İstəyə bağlı: izahda nəyə diqqət yetirmək lazım olduğunu əlavə edin", + }, + editMessage: "Mesajı redaktə et", + editResend: "Yenidən göndər", + editCancel: "Ləğv et", + cannotDeleteActiveConfig: "Hazırda aktiv olan konfiqurasiyanı silmək mümkün deyil. Əvvəlcə başqa konfiqurasiyaya keçin.", + globalInstructions: "Qlobal fərdi təlimatlar", + globalInstructionsDescription: "Bütün AI söhbətlərinə avtomatik tətbiq edilir.", + globalInstructionsCharCount: "{count}/{max} simvol", + globalInstructionsSaved: "Qlobal təlimatlar yadda saxlanıldı", + globalInstructionsSave: "Yadda saxla", + globalInstructionsTooLong: "Qlobal təlimatlar çox uzundur (maksimum {max} simvol)", + customInstructionsLoadFailed: "Fərdi AI təlimatlarını yükləmək mümkün olmadı. Yenidən cəhd edin.", + maxAgentTurns: "Agentin gediş limiti", + maxAgentTurnsDescription: "API agentinin hər icrasında fasilə verib davam etməyinizi istəməzdən əvvəl alət çağırışı gedişlərinin maksimum sayı. CLI provayderləri öz icra limitlərindən istifadə edir.", + maxAgentTurnsRange: "{min}–{max}, standart {default}", + maxAgentTurnsSaved: "Agentin gediş limiti yadda saxlanıldı", + defaultAiMode: "Standart AI rejimi", + defaultAiModeDescription: "Yeni AI söhbətinə başlayarkən istifadə olunan rejim. Cari söhbətdə rejimin dəyişdirilməsi bu parametri dəyişmir.", + restoreLastConversation: "Son AI söhbətini bərpa et", + restoreLastConversationDescription: "Aktiv olduqda AI köməkçisi açılarkən boş söhbət əvəzinə ən son yenilənmiş söhbət yüklənir.", + promptTemplates: "Ssenari sorğu şablonları", + promptTemplatesDescription: "Ssenariyə xas qaydaları daxil etmək üçün AI köməkçisində bir və ya bir neçə şablon seçin.", + promptTemplateNew: "Yeni şablon", + promptTemplateEdit: "Şablonu redaktə et", + promptTemplateName: "Şablonun adı", + promptTemplateNamePlaceholder: "məsələn, istehsal verilənlər bazasının qaydaları", + promptTemplateContent: "Şablonun məzmunu", + promptTemplateContentPlaceholder: "Qaydanı və ya təlimatı təsvir edin...", + promptTemplateNameEmpty: "Şablonun adı boş ola bilməz", + promptTemplateNameExists: "'{name}' adlı şablon artıq mövcuddur", + promptTemplateContentRequired: "Şablonun məzmunu boş ola bilməz", + promptTemplateDeleteTitle: "Şablonu sil", + promptTemplateDeleteConfirm: "'{name}' şablonu silinsin? Bu əməliyyat geri qaytarıla bilməz.", + promptTemplateTooLong: "Şablonun məzmunu çox uzundur (maksimum {max} simvol)", + promptTemplateNameTooLong: "Şablonun adı çox uzundur (maksimum {max} simvol)", + promptTemplateSaved: "Şablon yadda saxlanıldı", + promptTemplateDeleted: "Şablon silindi", + promptTemplateNoTemplates: "Hələ şablon yoxdur. Başlamaq üçün şablon yaradın.", + promptTemplateManage: "Şablonları idarə et", + promptTemplateSavedHint: "Dəyişikliklər avtomatik yadda saxlanılır.", + templateSelectorNone: "Seçilməyib", + templateSelectorButton: "Şablonlar", + templateSelectorLabel: "Şablonlar: {label}", + templateSelectorDeselectAll: "Bütün seçimləri ləğv et", + templateSelectorLoading: "Yüklənir...", + templateSelectorEmpty: "Şablon yoxdur. Əlavə etmək üçün İdarə et düyməsinə klikləyin.", + templateSelectorTooLong: "Seçilmiş şablonlar ümumi məzmun limitini ({max} simvol) aşır. Davam etmək üçün bəzilərinin seçimini ləğv edin.", + templateSetDefault: "Standart olaraq təyin et", + templateDefaultsTitle: "Verilənlər bazası növləri üçün standart", + templateDefaultsEmpty: "Hələ heç bir verilənlər bazası növü üçün standart deyil. Uyğun əlaqədə AI paneli açıldıqda standart şablonlar avtomatik tətbiq edilir.", + templateDefaultBadgeTitle: "{type} üçün standart şablon", + exportMarkdown: "Markdown kimi ixrac et", + analysis: "AI təhlili", + chartDownloadPng: "PNG-ni endir", + chartDownloadFailed: "Diaqram şəklini endirmək mümkün olmadı", + chartData: "Diaqram məlumatları", + htmlPreviewLabel: "AI tərəfindən yaradılmış HTML önbaxışı", + htmlExpandPreview: "Daha böyük önbaxış aç", + htmlExpandPreviewHint: "Bu önbaxış tam təcrid olunmuş mühitdə işləyir — skriptlər və şəbəkəyə giriş bloklanıb.", + htmlSaveSafe: "Təhlükəsiz HTML-i yadda saxla", + htmlSaveFailed: "HTML faylını yadda saxlamaq mümkün olmadı", + htmlCopySource: "Mənbəni kopyala", + htmlCopyRiskBody: "Bu HTML AI tərəfindən yaradılıb. Onu DBX-in xaricində açmaq skriptləri icra edə və şəbəkəyə girişə səbəb ola bilər.", + htmlCopyRiskAccept: "Yenə də kopyala", + htmlCopyRiskRemember: "Bu sessiyada bir daha soruşma", + htmlCopyRiskToast: "Kopyalandı. AI tərəfindən yaradılmış bu HTML DBX-in xaricində açıldıqda skriptləri icra edə və ya şəbəkəyə daxil ola bilər.", + exportConversation: "Söhbəti ixrac et", + conversationExportMarkdown: "Markdown kimi ixrac et", + conversationExportHtml: "HTML kimi ixrac et", + conversationRoleUser: "İstifadəçi", + conversationRoleAssistant: "AI", + conversationFailedMarker: "Bu cavabı yaratmaq mümkün olmadı", + conversationExportEmpty: "Hələ ixrac ediləcək mesaj yoxdur", + }, + contextMenu: { + openConnection: "Əlaqəni aç", + closeConnection: "Əlaqəni bağla", + closeSelectedConnections: "Seçilmiş {count} əlaqəni bağla", + closeDatabaseConnection: "Verilənlər bazası əlaqəsini bağla", + deleteConnection: "Əlaqəni sil", + deleteSelectedConnections: "Seçilmiş {count} əlaqəni sil", + confirmDeleteTitle: "Əlaqəni sil", + confirmDeleteMessage: '"{name}" elementini silmək istədiyinizə əminsiniz? Bunu geri qaytarmaq mümkün deyil.', + confirmDeleteSelectedMessage: "Seçilmiş {count} əlaqəni silmək istədiyinizə əminsiniz? Bu əməliyyat geri qaytarıla bilməz.", + editConnection: "Əlaqəni redaktə et", + revealDatabaseFile: "Fayl menecerində göstər", + selectVisibleDatabases: "Görünən verilənlər bazalarını seç", + configureVisibleObjects: "Görünən obyektlərin süzgəci", + userAdmin: "İstifadəçilər və imtiyazlar", + openUserAdmin: "İstifadəçiləri və imtiyazları aç", + processList: "Proses siyahısı", + sqlServerTrace: "Fəaliyyətin izlənməsi", + serverDashboard: "Serverin idarəetmə paneli", + damengUsers: "Dameng istifadəçiləri", + openDamengUsers: "Dameng istifadəçi idarəetməsini aç", + damengRoles: "Dameng rolları", + openDamengRoles: "Dameng rol idarəetməsini aç", + damengJobAdmin: "Dameng agent tapşırıqları", + openDamengJobAdmin: "Dameng agent tapşırıqlarını aç", + duplicateConnection: "Əlaqənin surətini yarat", + duplicateSelectedConnections: "Seçilmiş {count} əlaqənin surətini yarat", + newQuery: "Yeni sorğu", + addToAi: "AI-yə əlavə et", + addToAiMultiple: "AI-yə əlavə et ({count} cədvəl)", + instanceInfo: "İnstansiya məlumatları", + newSql: "Yeni SQL", + generateSql: "SQL yarat", + newInsert: "Yeni əlavəetmə", + newUpdate: "Yeni yeniləmə", + sqlHistory: "Sorğu tarixçəsi", + noSqlHistory: "Əlaqəli SQL yoxdur", + openObjectBrowser: "Obyektlərə bax", + openDatabaseBrowser: "Verilənlər bazalarına bax", + viewData: "Məlumatlara bax", + openInNewDataTab: "Yeni vərəqdə bax", + editStructure: "Strukturu redaktə et", + editColumn: "Sütunu redaktə et", + editIndex: "İndeksi redaktə et", + refreshChildren: "Yenilə", + collapseAll: "Hamısını yığ", + expandAll: "Hamısını genişləndir", + tableNameFilters: "Süzgəclər...", + tableNameFiltersDescription: "Yalnız daxiletmə siyahısına uyğun obyekt adlarını göstər, sonra istisna siyahısına uyğun adları gizlət. Hər sətirdə bir SQL LIKE şablonu.", + tableNameFilterInclude: "Daxil ediləcək obyekt adlarının şablonları", + tableNameFilterExclude: "İstisna ediləcək obyekt adlarının şablonları", + tableNameFilterIncludePlaceholder: "Nümunə:\nads_%\nuser_%", + tableNameFilterExcludePlaceholder: "Nümunə:\n%_bak\ntmp_%", + tableNameFilterLikeHint: "SQL LIKE sintaksisindən istifadə edin: % istənilən simvollara, _ isə bir simvola uyğundur. Uyğunlaşdırma böyük və kiçik hərflərə həssas deyil.", + pin: "Bərkit", + reorderPinned: "Bərkidilmiş elementin sırasını dəyiş", + unpin: "Bərkitməni ləğv et", + pinTab: "Vərəqi bərkit", + unpinTab: "Vərəqin bərkidilməsini ləğv et", + refreshTab: "Məlumatları yenilə", + renameTab: "Vərəqin adını dəyiş", + duplicateTab: "Vərəqin surətini yarat", + splitRight: "Sağa böl", + splitDown: "Aşağıya böl", + changeOrientation: "Bölünmə istiqamətini dəyiş", + unsplit: "Bölünməni ləğv et", + compactTabTitle: "Vərəq başlıqlarını qısalt", + fullTabTitle: "Vərəq başlıqlarını tam göstər", + closeTab: "Vərəqi bağla", + editTabGroup: "Vərəq qrupunu redaktə et", + resetTabGroup: "Vərəq qrupunu sıfırla", + closeTabGroup: "Vərəq qrupunu bağla", + closeFixedTab: "Sabit vərəqi bağla", + closeLeftTabs: "Soldakı vərəqləri bağla", + closeRightTabs: "Sağdakı vərəqləri bağla", + closeOtherTabs: "Digər vərəqləri bağla", + closeOtherRegularTabs: "Digər adi vərəqləri bağla", + closeOtherFixedTabs: "Digər sabit vərəqləri bağla", + closeAllTabs: "Bütün vərəqləri bağla", + closeAllRegularTabs: "Bütün adi vərəqləri bağla", + closeAllFixedTabs: "Bütün sabit vərəqləri bağla", + copyName: "Adı kopyala", + name: "Ad", + fullPath: "Tam yol", + copyFinalProxyPort: "Son proksi portunu kopyala", + finalProxyPortCopied: "Son proksi portu {port} kopyalandı", + setDefaultDatabase: "Standart verilənlər bazası olaraq təyin et", + clearDefaultDatabase: "Standart verilənlər bazası seçimini təmizlə", + setDefaultSchema: "Standart sxem olaraq təyin et", + clearDefaultSchema: "Standart sxem seçimini təmizlə", + exportDatabase: "Verilənlər bazasını ixrac et", + exportAllDatabases: "Bütün verilənlər bazalarını ixrac et", + exportDatabaseSuccess: "Hər birində ən çox {limit} sətir olmaqla {count} cədvəl ixrac edildi", + exportDatabaseFailed: "Verilənlər bazasını ixrac etmək mümkün olmadı: {message}", + backupSqliteDatabase: "SQLite verilənlər bazasının ehtiyat nüsxəsini yarat", + restoreSqliteDatabase: "SQLite verilənlər bazasını bərpa et", + backupSqliteDatabaseInProgress: "SQLite verilənlər bazasının ehtiyat nüsxəsi yaradılır...", + backupSqliteDatabaseSuccess: "SQLite verilənlər bazasının ehtiyat nüsxəsi yaradıldı", + backupSqliteDatabaseFailed: "SQLite verilənlər bazasının ehtiyat nüsxəsini yaratmaq mümkün olmadı: {message}", + restoreSqliteDatabaseInProgress: "SQLite verilənlər bazası bərpa edilir...", + restoreSqliteDatabaseSuccess: "SQLite verilənlər bazası bərpa edildi", + restoreSqliteDatabaseFailed: "SQLite verilənlər bazasını bərpa etmək mümkün olmadı: {message}", + importData: "Məlumatları idxal et", + exportData: "Məlumatları ixrac et", + exportDataMultiple: "Məlumatları ixrac et ({count} cədvəl)", + exportDataSelectDirectory: "İxrac qovluğunu seç", + exportDataMultipleSuccess: "{count} cədvəl ixrac edildi", + exportStructure: "Strukturu ixrac et", + exportStructurePreviewTitle: "Struktur - {name}", + exportStructurePreviewTitleMultiple: "Struktur - {count} obyekt", + exportStructureLoading: "Struktur yüklənir...", + copyStructure: "Strukturu kopyala", + copyStructureAs: "Strukturu bu formatda kopyala", + copyStructureAsTsv: "TSV (Excel üçün)", + copyStructureAsMarkdown: "Markdown cədvəli", + structureDocTable: "Cədvəl", + structureDocColumn: "Sütun", + structureDocType: "Növ", + structureDocPrimaryKey: "Əsas açar", + structureDocNullable: "NULL ola bilər", + structureDocDefault: "Standart", + structureDocComment: "Şərh", + structureDocYes: "Bəli", + structureDocNo: "Xeyr", + structureDocCopied: "Struktur kopyalandı", + structureDocCopyFallbackHint: "Avtomatik kopyalama bloklandı. Yenidən Kopyala düyməsinə klikləyin və ya aşağıdakı məzmunu seçin.", + saveStructure: "SQL-i yadda saxla", + exportStructureCopied: "Struktur kopyalandı", + createTable: "Cədvəl yarat", + createView: "Görünüş yarat", + createProcedure: "Prosedur yarat", + createFunction: "Funksiya yarat", + createTrigger: "Triqqer yarat", + dropTable: "Cədvəli sil", + emptyTable: "Cədvəli boşalt", + truncateTable: "Cədvəli TRUNCATE et", + vacuumTable: "VACUUM əmrini işlət", + vacuumTableTitle: "VACUUM əmrini işlət", + vacuumTableMessage: '"{name}" üzərində VACUUM işlədilsin?', + vacuumTableAnalyze: "ANALYZE", + vacuumTableAnalyzeHint: "Optimallaşdırıcının statistikasını yenilə. Bu, sonrakı sorğu planlarını dəyişə bilər və CPU ilə disk I/O yükünü artırır.", + vacuumTableFull: "FULL", + vacuumTableFullHint: "Yüksək risk: bütün cədvəli yenidən yazır və müstəsna kilid qoyur. Oxuma və yazma bloklana bilər, əlavə disk sahəsi tələb oluna bilər.", + vacuumTableDefaultRisk: "Müntəzəm texniki xidmət: əlavə disk I/O əməliyyatları baş verə bilər və müddət cədvəlin ölçüsündən asılıdır.", + vacuumTableAnalyzeRisk: "Optimallaşdırıcının statistikası yenilənəcək, bu isə sonrakı sorğu planlarını dəyişə bilər.", + vacuumTableFullRisk: "Yüksək risk: bütün cədvəli yenidən yazır və müstəsna kilid qoyur. Bu, oxuma və yazmanı bloklaya və əlavə disk sahəsi tələb edə bilər.", + vacuumTableFullConfirm: "VACUUM FULL əmrini işlət", + vacuumTableRunning: "VACUUM işləyir...", + vacuumTableRunningHint: "VACUUM işləyir. Böyük cədvəllər uzun vaxt tələb edə bilər; bu əməliyyatı açıq saxlayın.", + vacuumTableSuccess: '"{name}" üçün VACUUM tamamlandı', + mysqlAutoIncrement: "AUTO_INCREMENT təyin et", + mysqlAutoIncrementTitle: "MySQL AUTO_INCREMENT təyin et", + mysqlAutoIncrementMessage: '"{name}" üçün tələb olunan növbəti AUTO_INCREMENT dəyəri təyin edilsin?', + mysqlAutoIncrementNonemptyHint: "Boş olmayan cədvəldə MySQL istifadə olunan ID-ləri təkrar istifadə etmir. Növbəti faktiki dəyər ən azı MAX(id) + 1 olaraq qalır.", + mysqlAutoIncrementValue: "Tələb olunan növbəti dəyər", + duplicateStructure: "Yeni cədvəl kimi klonla", + renameObject: "Adını dəyiş", + renameObjectTitle: "Obyektin adını dəyiş", + renameObjectNamePlaceholder: "Yeni ad", + renameObjectSuccess: '"{oldName}" adı "{newName}" olaraq dəyişdirildi', + renameDatabase: "Verilənlər bazasının adını dəyiş", + renameDatabaseTitle: "Verilənlər bazasının adını dəyiş", + renameDatabaseNotOwner: '"{name}" adını yalnız verilənlər bazasının sahibi dəyişə bilər.', + renameDatabasePreparedTransactions: '"{name}" verilənlər bazasında {count} gözləyən hazırlanmış tranzaksiya var. Əvvəlcə onlar üçün COMMIT və ya ROLLBACK icra edin.', + confirmDropTableTitle: "Cədvəli sil", + confirmDropTableMessage: '"{name}" cədvəlini silmək istədiyinizə əminsiniz? Bu, cədvəli və onun bütün məlumatlarını həmişəlik siləcək.', + dropTableCascade: "CASCADE-dən istifadə et", + dropTableCascadeHint: "Görünüşlər kimi asılı obyektləri də sil. PostgreSQL-in standart RESTRICT davranışından istifadə etmək üçün deaktiv saxlayın.", + truncateTableCascade: "CASCADE-dən istifadə et", + truncateTableCascadeHint: "Xarici açarlarla bu cədvələ istinad edən cədvəllərə də TRUNCATE tətbiq et. PostgreSQL-in standart RESTRICT davranışından istifadə etmək üçün deaktiv saxlayın.", + confirmEmptyTableTitle: "Cədvəli boşalt", + confirmEmptyTableMessage: '"{name}" daxilindəki bütün məlumatları silmək istədiyinizə əminsiniz?', + confirmTruncateTableTitle: "Cədvəli TRUNCATE et", + confirmTruncateTableMessage: '"{name}" cədvəlini tam boşaltmaq istədiyinizə əminsiniz? Bu, bütün sətirləri siləcək.', + mysqlAutoIncrementSuccess: '"{name}" cədvəli üçün {value} AUTO_INCREMENT dəyəri tələb edildi', + dropTableSuccess: '"{name}" cədvəli silindi', + editView: "Görünüşü redaktə et", + viewSource: "Mənbəyə bax", + viewDependencies: "Asılılıqlara bax", + viewObject: "Bax", + changeOpenMode: "Açılma rejimini dəyiş", + viewDetails: "Təfərrüatlara bax", + viewDdl: "DDL-ə bax", + viewDdlLoading: "DDL yüklənir...", + ddlCopied: "DDL kopyalandı", + refreshDdlOnOpen: "Hər açılışda yenilə", + refreshDdlOnOpenHint: "Aktiv olduqda DDL hər açılışda verilənlər bazasından yenidən yüklənir; deaktiv olduqda keşdəki məlumatlara üstünlük verilir", + dropObject: "Obyekti sil", + dropEventSuccess: '"{name}" hadisəsi silindi', + editObject: "Obyekti redaktə et", + createEvent: "Hadisə yarat", + eventEditorTitle: "MySQL hadisəsi", + eventDefinition: "Tərif", + eventSchedule: "Cədvəl", + eventComment: "Şərh", + eventSqlPreview: "SQL önbaxışı", + eventName: "Ad", + eventBodyPlaceholder: "Hadisənin gövdəsi, məsələn, CALL procedure();", + eventExecuteAt: "İcra vaxtı", + eventIntervalValue: "İnterval dəyəri", + eventIntervalUnit: "İnterval vahidi", + eventStarts: "Başlanğıc", + eventEnds: "Son", + eventCompletion: "Tamamlanma", + eventStatus: "Vəziyyət", + eventCommentPlaceholder: "İstəyə bağlı şərh", + eventLoading: "Yüklənir...", + eventCancel: "Ləğv et", + eventSave: "Yadda saxla", + dropView: "Görünüşü sil", + dropColumn: "Sütunu sil", + dropIndex: "İndeksi sil", + dropAllIndexes: "Bütün indeksləri sil", + createMongoIndex: "İndeks yarat", + createMongoIndexTitle: 'İndeks yarat: "{collection}"', + createMongoIndexFields: "İndeks sahələri", + createMongoIndexFieldRequired: "Hər indeks sətri üçün sahə seçin və ya daxil edin.", + mongoIndexAscending: "Artan (1)", + mongoIndexDescending: "Azalan (-1)", + createMongoIndexNamePlaceholder: "Avtomatik yaradılır", + createMongoIndexNameHint: "MongoDB-nin sahə və növlər əsasında ad yaratması üçün boş saxlayın.", + createMongoIndexSparse: "Seyrək", + createMongoIndexTtlInvalid: "Etibarlılıq müddəti saniyə ilə tam ədəd olmalıdır.", + createMongoIndexFilterInvalid: 'Qismən süzgəc obyekt olmalıdır, məsələn, { "status": "active" }.', + createMongoIndexBucketSizeInvalid: "Konteyner ölçüsü tam ədəd olmalıdır.", + manageMongoIndexes: "İndeksləri idarə et", + manageMongoIndexesTitle: 'İndekslər: "{collection}"', + mongoIndexKeys: "Açarlar", + mongoIndexEmpty: "Bu kolleksiyanın hələ indeksi yoxdur.", + mongoIndexSelectHint: "Xüsusiyyətlərini görmək üçün indeks seçin.", + mongoIndexReadOnlyHint: "MongoDB mövcud indeksi dəyişə bilmir. Xüsusiyyətlərini dəyişmək üçün onu silin və yenisini yaradın.", + editMongoIndex: "İndeksi redaktə et", + saveMongoIndex: "Yadda saxla", + mongoIndexRebuildHint: "Yadda saxlama indeksi yenidən qurur: köhnə indeks silinir və yenisi yaradılır.", + mongoEditIndexSuccess: '"{collection}" kolleksiyasındakı "{oldName}" indeksi "{newName}" adı ilə yenidən quruldu', + mongoEditIndexNotFound: '"{name}" indeksi artıq serverdə mövcud deyil. Siyahı köhnəlmiş ola bilər — yeniləyin və yenidən cəhd edin.', + mongoEditIndexStale: 'Dialoq açıldıqdan sonra "{name}" indeksi başqa sessiya tərəfindən dəyişdirilib. Siyahını yeniləyin və yenidən cəhd edin.', + mongoEditIndexIncompleteSameName: '"{name}" indeksinin serverdəki tərifi tam deyil, buna görə də onu silib eyni adla yenidən qurmaq mümkün deyil.', + mongoEditIndexDropFailed: '"{name}" indeksini silmək mümkün olmadı; onu əvəz edən indeks yaradılmadı: {error}', + mongoEditIndexDropFailedAfterCreate: '"{newName}" indeksi yaradıldı, lakin ilkin "{oldName}" indeksini silmək mümkün olmadı: {error}', + mongoEditIndexCreateFailedRolledBack: '"{name}" indeksini əvəz edən indeks yaradıla bilmədi, buna görə ilkin indeks bərpa edildi: {error}', + mongoEditIndexCreateAndRollbackFailed: '"{name}" indeksini əvəz edən indeks yaradıla bilmədi ({createError}) və ilkin indeksin bərpası da uğursuz oldu ({rollbackError}).', + mongoIndexExtraOptionsPreserved: "Serverin bildirdiyi seçimlər (collation, wildcardProjection, weights, …) yenidən qurulma zamanı saxlanılır.", + dropForeignKey: "Xarici açarı sil", + dropTrigger: "Triqqeri sil", + batchDrop: "Seçilənləri sil ({count})", + batchEmpty: "Seçilənləri boşalt ({count})", + batchTruncate: "Seçilənlərə TRUNCATE tətbiq et ({count})", + batchMysqlAutoIncrement: "AUTO_INCREMENT təyin et ({count})", + batchDropIndexes: "İndeksləri sil ({count})", + executeProcedure: "Proseduru icra et", + compileObject: "Kompilyasiya et", + compileObjectSuccess: '"{name}" uğurla kompilyasiya edildi', + confirmExecuteProcedureTitle: "Proseduru icra et", + confirmExecuteProcedureMessage: '"{name}" proseduru icra edilsin? Əvvəlcə parametr dəyərlərini doldura və ya dəyişdirə bilərsiniz.', + loadingProcedureParameters: "Parametrlər yüklənir...", + procedureParametersUnavailable: "Parametrlərin metaverilənlərini yükləmək mümkün olmadı. Yenə də aşağıdakı SQL-i redaktə edib icra edə bilərsiniz.", + noProcedureParameters: "Parametr tapılmadı. Cari SQL göstərildiyi kimi icra ediləcək.", + inputParameters: "{count} giriş parametri", + outputParameters: "{count} çıxış parametri", + parameterName: "Ad", + parameterType: "Növ", + parameterMode: "Rejim", + parameterValue: "Dəyər", + parameterNull: "NULL", + parameterDefault: "DEFAULT", + parameterDefaultHint: "DEFAULT seçildikdə DBX həmin arqumenti buraxır ki, verilənlər bazası prosedurun standart dəyərindən istifadə etsin.", + parameterValuePlaceholder: "Dəyər daxil edin", + outputOnly: "Yalnız çıxış", + sqlPreview: "SQL önbaxışı", + resetSqlPreview: "SQL-i sıfırla", + openInSqlEditor: "Redaktorda aç", + dropProcedure: "Proseduru sil", + dropFunction: "Funksiyanı sil", + manageExtension: "Genişlənmələri idarə et...", + dropExtension: "Genişlənməni sil", + confirmDropViewTitle: "Görünüşü sil", + confirmDropViewMessage: '"{name}" görünüşünü silmək istədiyinizə əminsiniz?', + confirmDropObjectTitle: "Obyekti sil", + confirmDropObjectMessage: '"{name}" obyektini silmək istədiyinizə əminsiniz?', + confirmDropColumnTitle: "Sütunu sil", + confirmDropIndexTitle: "İndeksi sil", + confirmDropMongoIndexMessage: '"{collection}" kolleksiyasından "{name}" indeksini silmək istədiyinizə əminsiniz?', + confirmDropMongoAllIndexesMessage: '"{name}" kolleksiyasından silinə bilən bütün indeksləri silmək istədiyinizə əminsiniz?', + confirmDropMongoAllIndexesDetails: 'MongoDB "_id_" indeksini saxlayır. Verilənlərin bölünməsi açarı üçün tələb olunan əlavə indekslər də qala bilər; nəticədə yalnız faktiki silinmiş indekslər göstəriləcək.', + confirmDropForeignKeyTitle: "Xarici açarı sil", + confirmDropTriggerTitle: "Triqqeri sil", + confirmDropTableChildObjectMessage: '"{table}" cədvəlindən "{name}" obyektini silmək istədiyinizə əminsiniz?', + confirmDropBatchIndexesMessage: '"{table}" cədvəlindən seçilmiş {count} indeksi silmək istədiyinizə əminsiniz? Bunu geri qaytarmaq mümkün deyil.', + confirmBatchDropTitle: "Seçilmiş obyektləri sil", + confirmBatchDropMessage: "Seçilmiş {count} obyekti silmək istədiyinizə əminsiniz? Bu əməliyyat geri qaytarıla bilməz.", + confirmBatchEmptyTitle: "Seçilmiş cədvəlləri boşalt", + confirmBatchEmptyMessage: "Seçilmiş {count} cədvəldəki bütün məlumatları silmək istədiyinizə əminsiniz?", + confirmBatchTruncateTitle: "Seçilmiş cədvəllərə TRUNCATE tətbiq et", + confirmBatchTruncateMessage: "Seçilmiş {count} cədvələ TRUNCATE tətbiq etmək istədiyinizə əminsiniz? Bu, bütün sətirləri siləcək.", + batchMysqlAutoIncrementTitle: "MySQL AUTO_INCREMENT təyin et ({count} cədvəl)", + batchMysqlAutoIncrementMessage: "Seçilmiş {count} cədvəl üçün tələb olunan növbəti AUTO_INCREMENT dəyəri təyin edilsin?", + batchMysqlAutoIncrementSuccess: "{count} cədvəl üçün AUTO_INCREMENT {value} tələb edildi", + batchMysqlAutoIncrementPartialFail: "{success} cədvəl üçün AUTO_INCREMENT təyin edildi, {failed} uğursuz oldu", + confirmDropProcedureTitle: "Proseduru sil", + confirmDropProcedureMessage: '"{name}" prosedurunu silmək istədiyinizə əminsiniz?', + confirmDropFunctionTitle: "Funksiyanı sil", + confirmDropFunctionMessage: '"{name}" funksiyasını silmək istədiyinizə əminsiniz?', + confirmDropEventTitle: "Hadisəni sil", + confirmDropEventMessage: '"{name}" hadisəsini silmək istədiyinizə əminsiniz?', + dropViewSuccess: '"{name}" görünüşü silindi', + dropProcedureSuccess: '"{name}" proseduru silindi', + dropFunctionSuccess: '"{name}" funksiyası silindi', + dropTableChildObjectSuccess: '"{name}" silindi', + dropAllIndexesSuccess: '"{name}" daxilindən {count} indeks silindi', + dropIndexesPartialFailure: "{success} indeks silindi; {failed} uğursuz oldu.", + createMongoIndexSuccess: '"{collection}" kolleksiyasında "{name}" indeksi yaradıldı', + mongoIndexRefreshFailed: "Əməliyyatdan sonra indeks siyahısını yeniləmək mümkün olmadı: {message}", + batchDropSuccess: "{count} obyekt silindi", + batchEmptySuccess: "{count} cədvəl boşaldıldı", + batchEmptyPartialFail: "{success} cədvəl boşaldıldı, {failed} uğursuz oldu", + batchEmptySubmitted: "{count} cədvəl üçün boşaltma tapşırıqları göndərildi", + batchEmptySubmittedPartial: "{success} boşaltma tapşırığı göndərildi, {failed} uğursuz oldu", + batchTruncateSuccess: "{count} cədvələ TRUNCATE tətbiq edildi", + emptyTableSuccess: '"{name}" daxilindəki bütün məlumatlar silindi', + emptyTableSubmitted: '"{name}" üçün boşaltma tapşırığı göndərildi', + truncateTableSuccess: '"{name}" cədvəli tam boşaldıldı', + duplicateStructureSuccess: 'Cədvəl "{name}" adı ilə klonlandı', + tableOperationFailed: "Əməliyyat uğursuz oldu: {message}", + tableOperationTimedOut: '"{name}" üzərindəki əməliyyat gözləniləndən uzun çəkir və ləğv edilməyib — verilənlər bazasında hələ də işləyir ola bilər. Nəticəni sonra yoxlayın və ya dayandırmaq üçün Ləğv et düyməsinə klikləyin. ({message})', + tableOperationCancelled: '"{name}" üzərindəki əməliyyat ləğv edildi', + tableOperationCancelUnconfirmed: '"{name}" üçün ləğv sorğusu verilənlər bazası tərəfindən təsdiqlənmədi — əməliyyat artıq bitmiş və ya hələ də işləyir ola bilər. Əmin olmaq üçün nəticəni yoxlayın. ({message})', + tableOperationCancelPending: '"{name}" üçün ləğv sorğusu hələ təsdiqlənməyib — əməliyyat verilənlər bazasında hələ də işləyir ola bilər. Ləğv et düyməsinə yenidən klikləyə və ya bir az sonra yoxlaya bilərsiniz.', + dangerOperationAlreadyRunning: "Başqa təhlükəli əməliyyat hələ də işləyir. Yenisini başlamazdan əvvəl onun bitməsini gözləyin və ya onu ləğv edin.", + objectDropRefreshFailed: "Obyektlər silindi, lakin yan paneli yeniləmək mümkün olmadı: {message}", + duplicateNameTitle: "Yeni cədvəl kimi klonla", + duplicateNamePlaceholder: "Yeni cədvəlin adı", + copyTable: "Cədvəli kopyala", + pasteTable: "Cədvəli yerləşdir", + pasteOptionStructureAndData: "Struktur və məlumatlar", + pasteOptionStructureOnly: "Yalnız struktur", + pasteOptionDataOnly: "Yalnız məlumatlar", + pasteTableSuccess: 'Cədvəl "{name}" adı ilə yerləşdirıldı', + pasteTableConfirmTitle: "Cədvəli yerləşdir", + pasteTableConfirmMessage: "Cədvəli mübadilə buferindən yerləşdir", + batchPasteTitle: "Cədvəlləri yerləşdir", + batchPasteSuccess: "{count} cədvəl uğurla yerləşdirıldı", + batchPastePartialFail: "{success} cədvəl yerləşdirıldı, {failed} uğursuz oldu", + pasteTableRefreshFailed: "Cədvəllər yerləşdirıldı, lakin obyekt siyahısını yeniləmək mümkün olmadı: {message}", + pasteTableCancelledAfterPartial: "Yerləşdirma ləğv edildi. Ləğvdən əvvəl yaradılmış cədvəllər yeniləndi; mübadilə buferi saxlanıldı.", + noTableToPaste: "Yerləşdirılacaq cədvəl yoxdur", + pasteTableClipboardUpdated: "Cədvəl mübadilə buferinə kopyalandı", + createDatabase: "Verilənlər bazası yarat", + createDuckDbFile: "Verilənlər bazası faylı yarat", + attachSqliteDatabase: "SQLite verilənlər bazasını qoş", + dropDatabase: "Verilənlər bazasını sil", + confirmDropDatabaseTitle: "Verilənlər bazasını sil", + confirmDropDatabaseMessage: '"{name}" verilənlər bazasını silmək istədiyinizə əminsiniz? Bu, verilənlər bazasını və onun bütün məlumatlarını həmişəlik siləcək.', + createDatabaseSuccess: '"{name}" verilənlər bazası yaradıldı', + mysqlCreateDatabasePermissionHint: "Cari MySQL hesabı bu verilənlər bazasını yarada bilmir. root adlı hesabın mütləq administrator imtiyazları olmur. CREATE icazəsi vermək üçün GRANT OPTION imtiyazı olan administrator hesabından istifadə edin, sonra yenidən cəhd edin.", + createDatabasePartial: '"{name}" verilənlər bazası yaradıldı, lakin bəzi icazələri vermək mümkün olmadı', + createDatabaseFailed: '"{name}" verilənlər bazası yaradıla bilmədi', + createDatabaseUsers: "İstifadəçilərə giriş icazəsi ver", + createDatabaseUsersHint: "Verilənlər bazası yaradıldıqdan sonra seçilmiş istifadəçilərə bazanın öz icazə sistemi vasitəsilə tam giriş verilir.", + createDatabaseUsersSelected: "{count} seçilib", + createDatabaseUsersLoading: "İstifadəçilər yüklənir...", + createDatabaseUsersLoadFailed: "İstifadəçiləri yükləmək mümkün olmadı: {message}", + previewCreateDatabaseSql: "SQL-ə önbaxış", + createDatabaseSqlPreview: "Verilənlər bazası yaratma SQL-inin önbaxışı", + applyCreateDatabaseSql: "Yarat və icazə ver", + closeCreateDatabaseResult: "Bağla", + createDatabaseStep: '"{database}" verilənlər bazasını yarat', + createDatabaseGrantStep: '{user} istifadəçisinə "{database}" verilənlər bazasına giriş icazəsi ver', + createDatabaseGrantObjectsStep: '{user} istifadəçisinə "{database}" verilənlər bazasındakı sxem və obyektlərə giriş icazəsi ver', + createDatabaseStepSkipped: "Tələb olunan əvvəlki addım uğursuz olduğu üçün ötürüldü.", + editDatabaseProperties: "Verilənlər bazasının xüsusiyyətlərini redaktə et", + editDatabasePropertiesTitle: 'Verilənlər bazasının xüsusiyyətlərini redaktə et: "{name}"', + editDatabasePropertiesSaving: "Yadda saxlanılır...", + editDatabasePropertiesSuccess: '"{name}" verilənlər bazasının xüsusiyyətləri yeniləndi', + editDatabaseComment: "Verilənlər bazasının şərhi", + editDatabaseCommentPlaceholder: "Verilənlər bazasının şərhini daxil edin...", + createDuckDbFileSuccess: '"{name}" adlı DuckDB verilənlər bazası faylı yaradıldı və qoşuldu', + createDuckDbFileDesktopOnly: "DuckDB verilənlər bazası fayllarını yaratmaq yalnız masaüstü tətbiqdə mümkündür", + attachSqliteDatabaseSuccess: '"{name}" adlı SQLite verilənlər bazası qoşuldu', + attachSqliteDatabaseDesktopOnly: "SQLite verilənlər bazası fayllarını qoşmaq yalnız masaüstü tətbiqdə mümkündür", + dropDatabaseSuccess: '"{name}" verilənlər bazası silindi', + dropCollection: "Kolleksiyanı sil", + elasticsearchViewMapping: "Sahə uyğunlaşdırmasına bax", + elasticsearchViewSettings: "İndeks parametrlərinə bax", + elasticsearchViewStats: "İndeks statistikasına bax", + elasticsearchClearIndex: "İndeks məlumatlarını təmizlə", + elasticsearchClearIndexMessage: "Bu, {index} indeksindəki bütün sənədləri silir. Sahə uyğunlaşdırması, parametrlər və ləqəblər saxlanılır. Davam edilsin?", + elasticsearchClearIndexPatternMessage: "{index} tək indeks deyil, qruplaşdırılmış şablondur. Bu, ona uyğun gələn hər indeksdəki bütün sənədləri silir. Sahə uyğunlaşdırmaları, parametrlər və ləqəblər saxlanılır. Davam edilsin?", + elasticsearchClearIndexTypeToConfirm: "Təsdiqləmək üçün {index} yazın", + elasticsearchClearIndexDetails: "Sənədlər _delete_by_query ilə silinir; indeksin özü silinmir.", + elasticsearchClearIndexConfirm: "Məlumatları təmizlə", + elasticsearchClearIndexDone: "{index} təmizləndi: {deleted} sənəd silindi", + elasticsearchClearIndexPartial: "{index} qismən təmizləndi: {total} sənəddən {deleted} silindi. Münaqişələri və ya fraqment xətalarını yoxlayıb yenidən işlədin.", + cloneCollection: "Kolleksiyanı klonla", + cloneCollectionTitle: "Yeni kolleksiya kimi klonla", + cloneCollectionNamePlaceholder: "Yeni kolleksiyanın adı", + cloneCollectionSuccess: '"{name}" kolleksiyası {documents} sənəd və {indexes} indekslə klonlandı', + confirmDropCollectionTitle: "Kolleksiyanı sil", + confirmDropCollectionMessage: '"{name}" kolleksiyasını silmək istədiyinizə əminsiniz? Bu, kolleksiyanı və onun bütün sənədlərini həmişəlik siləcək.', + dropCollectionSuccess: '"{name}" kolleksiyası silindi', + createDatabaseNamePlaceholder: "Verilənlər bazasının adı", + createDatabaseCharset: "Simvol dəsti", + createDatabaseCharsetPlaceholder: "məsələn, utf8mb4", + createDatabaseCharsetSearchPlaceholder: "Simvol dəsti axtarın və ya yazın", + createDatabaseCharsetEmpty: "Simvol dəsti tapılmadı", + createDatabaseCharsetLoading: "Simvol dəstləri yüklənir...", + createDatabaseCharsetCustomOption: '"{value}" dəyərindən istifadə et', + createDatabaseCollation: "Müqayisə qaydası", + createDatabaseCollationPlaceholder: "məsələn, utf8mb4_unicode_ci", + createDatabaseCollationSearchPlaceholder: "Müqayisə qaydası axtarın və ya yazın", + createDatabaseCollationEmpty: "Müqayisə qaydası tapılmadı", + createDatabaseCollationLoading: "Müqayisə qaydaları yüklənir...", + createDatabaseCollationCustomOption: '"{value}" dəyərindən istifadə et', + createSchema: "Sxem yarat", + dropSchema: "Sxemi sil", + confirmDropSchemaTitle: "Sxemi sil", + confirmDropSchemaMessage: '"{name}" sxemini silmək istədiyinizə əminsiniz? Bu, sxemi və onun bütün obyektlərini həmişəlik siləcək.', + createSchemaSuccess: '"{name}" sxemi yaradıldı', + dropSchemaSuccess: '"{name}" sxemi silindi', + dropDamengSchemaRequiresDifferentDba: "Dameng cari əlaqədən bu sxemi təhlükəsiz şəkildə silə bilmir. Başqa DBA istifadəçisi kimi qoşulun və yenidən cəhd edin.", + createSchemaNamePlaceholder: "Sxemin adı", + editSchemaComment: "Şərhi redaktə et", + editSchemaCommentTitle: 'Şərhi redaktə et: "{name}"', + schemaCommentPlaceholder: "Sxemin şərhini daxil edin...", + schemaCommentSaving: "Yadda saxlanılır...", + editSchemaCommentSuccess: '"{name}" sxeminin şərhi yeniləndi', + }, + visibleDatabases: { + title: "Görünən verilənlər bazaları", + detailLabel: "Görünən verilənlər bazaları", + detailActionLabel: '"{connection}" üçün görünən verilənlər bazalarını tənzimlə', + description: '"{connection}" altında hansı verilənlər bazalarının göstəriləcəyini seçin.', + searchPlaceholder: "Verilənlər bazalarını axtar...", + selectedCount: "{selected}/{total} seçilib", + patternsPlaceholder: "Əvəzedici simvollar, məsələn, %n1%, vergüllə ayrılmış", + patternsHint: "Bu şablonlara uyğun verilənlər bazaları həmişə göstərilir (% = istənilən simvollar, _ = bir simvol)", + patternsMatchCount: "{count} uyğunluq", + selectAll: "Hamısını seç", + selectFiltered: "Axtarış nəticələrini seç", + clear: "Təmizlə", + showAll: "Hamısını göstər", + showSystemDatabases: "Sistem verilənlər bazalarını göstər", + save: "Yadda saxla", + emptySelection: "Ən azı bir verilənlər bazası seçin və ya süzgəci təmizləmək üçün Hamısını göstər seçimindən istifadə edin.", + loadFailed: "Verilənlər bazalarını yükləmək mümkün olmadı: {message}", + }, + visibleSchemas: { + title: "Sxem süzgəci", + detailLabel: "Görünən sxemlər", + detailActionLabel: '"{connection}" üçün görünən sxemləri tənzimlə', + description: '"{connection}" altında hansı sxemlərin göstəriləcəyini seçin.', + searchPlaceholder: "Sxemləri axtar...", + selectedCount: "{selected}/{total} seçilib", + selectAll: "Hamısını seç", + selectFiltered: "Axtarış nəticələrini seç", + clear: "Təmizlə", + showAll: "Hamısını göstər", + showSystemSchemas: "Sistem sxemlərini göstər", + save: "Yadda saxla", + emptySelection: "Ən azı bir sxem seçin və ya süzgəci təmizləmək üçün Hamısını göstər seçimindən istifadə edin.", + loadFailed: "Sxemləri yükləmək mümkün olmadı: {message}", + }, + tree: { + savedSql: "SQL kitabxanası", + queries: "Sorğular", + userAdmin: "İstifadəçilər və imtiyazlar", + damengUsers: "İstifadəçilər", + damengRoles: "Rollar", + damengJobAdmin: "Agent tapşırıqları", + xuguTablespaces: "Saxlama sahələri", + xuguDatafiles: "Fayllar", + xuguStorage: { + name: "Ad", + nodeId: "Qovşaq ID-si", + spaceId: "Cədvəl sahəsinin ID-si", + spaceType: "Cədvəl sahəsinin növü", + datafileCount: "Məlumat faylları", + totalChunks: "Ümumi blok sayı", + freeChunks: "Boş bloklar", + usedChunks: "İstifadə olunan bloklar", + usage: "İstifadə", + mediaError: "Daşıyıcı xətası", + path: "Yol", + fileNo: "Fayl nömrəsi", + currentSize: "Cari ölçü", + maxSize: "Maksimum ölçü", + stepSize: "Artım addımı", + reserved: "Ayrılmış", + unlimited: "Məhdudiyyətsiz", + yes: "Bəli", + no: "Xeyr", + }, + linkedServers: "Əlaqələndirilmiş serverlər", + defaultDatabase: "Standart verilənlər bazası", + columns: "Sütunlar", + attributes: "Atributlar", + methods: "Metodlar", + indexes: "İndekslər", + foreignKeys: "Xarici açarlar", + triggers: "Tətikləyicilər", + events: "Hadisələr", + constraints: "Məhdudiyyətlər", + tables: "Cədvəllər", + doltSystemTables: "Dolt sistem cədvəlləri", + tableNameFilterActive: "süzgəcdən keçirilib", + views: "Görünüşlər", + materializedViews: "Materiallaşdırılmış görünüşlər", + procedures: "Prosedurlar", + functions: "Funksiyalar", + sequences: "Ardıcıllıqlar", + schedulerJobs: "Planlaşdırılmış tapşırıqlar", + synonyms: "Sinonimlər", + packages: "Paketlər", + types: "Növlər", + gridfs: "GridFS", + buckets: "Konteynerlər", + partitions: "Bölmələr", + subpartitions: "Alt bölmələr", + childTables: "Alt cədvəllər", + loadMore: "Daha çox yüklə...", + objectBrowser: "Obyekt brauzerində bax ({count})", + extensions: "Genişləndirmələr", + }, + extension: { + manageTitle: "Genişləndirmələri idarə et", + installTitle: "Genişləndirmə quraşdır", + detailsTitle: "Genişləndirmə təfərrüatları", + viewDetails: "Təfərrüatlara bax", + name: "Genişləndirmənin adı", + namePlaceholder: "məs. pg_stat_statements", + install: "Quraşdır", + drop: "Sil", + available: "Mövcud", + installed: "Quraşdırılıb", + noAvailable: "Bütün mövcud genişləndirmələr artıq quraşdırılıb.", + noInstalled: "Heç bir genişləndirmə quraşdırılmayıb.", + }, + processList: { + title: "Proses siyahısı", + sessionCount: "{count} sessiya", + filter: "Sessiyaları süzgəcdən keçir", + autoRefresh: "Avtomatik yeniləmə", + seconds: "s", + colId: "ID", + colUser: "İstifadəçi", + colHost: "Host", + colDb: "DB", + colCommand: "Əmr", + colTime: "Vaxt", + colState: "Vəziyyət", + colInfo: "Məlumat", + colPid: "PID", + colClient: "Müştəri", + colApp: "Tətbiq", + colWait: "Gözləmə", + colQuery: "Sorğu", + colActions: "Əməliyyatlar", + self: "siz", + kill: "Sorğunu ləğv et", + cannotKillSelf: "Öz sessiyanızdakı sorğunu ləğv edə bilməzsiniz", + empty: "Aktiv sessiya yoxdur.", + killTitle: "İcra olunan sorğunu ləğv et", + killConfirm: "{id} ({user}) sessiyasında icra olunan sorğu ləğv edilsin? Sessiyanın əlaqəsi saxlanacaq.", + killSuccess: "{id} sessiyasında icra olunan sorğu ləğv edildi", + killFailed: "Sorğunu ləğv etmək mümkün olmadı: {message}", + previewTitle: "İfadə", + copy: "Kopyala", + copied: "Kopyalandı", + }, + sqlServerTrace, + serverDashboard: { + title: "Serverin idarəetmə paneli", + autoRefresh: "Avtomatik yeniləmə", + off: "Söndürülüb", + qps: "Sorğular / san", + connections: "Əlaqələr", + running: "İşləyən axınlar", + trafficIn: "Daxil olan trafik", + trafficOut: "Çıxan trafik", + slowQueries: "Yavaş sorğular", + uptime: "Fasiləsiz işləmə müddəti", + innodbHit: "InnoDB keşinə müraciətlərin uğur faizi", + in: "Giriş", + out: "Çıxış", + sessions: "Sessiyalar", + qpsChart: "Saniyədə sorğu sayı", + sessionsChart: "Saniyədə sessiya sayı", + trafficChart: "Şəbəkə trafiki /san", + commandChart: "Saniyədə əmr sayı", + rawStatus: "Vəziyyət dəyişənləri", + filterStatus: "Vəziyyət dəyişənlərini süzgəcdən keçir", + tps: "Tranzaksiyalar / san", + activeQueries: "Aktiv sorğular", + cacheHit: "Keşə müraciətlərin uğur faizi", + deadlocks: "Qarşılıqlı kilidlənmələr", + tempFiles: "Müvəqqəti fayllar", + walRate: "WAL sürəti", + commit: "Təsdiqləmə", + rollback: "Geri qaytarma", + total: "Cəmi", + active: "Aktiv", + idle: "Boşdayanan", + fetched: "Gətirilən", + returned: "Qaytarılan", + read: "Oxunan", + hits: "Uğurlu müraciətlər", + serverSessionsChart: "Server sessiyaları", + transactionsChart: "Saniyədə tranzaksiya sayı", + tuplesInChart: "Daxil olan kortejlər", + tuplesOutChart: "Çıxan kortejlər", + blockIoChart: "Blok giriş/çıxışı", + }, + xuguServerDashboard: { + title: "Xugu serverinin idarəetmə paneli", + off: "Söndürülüb", + unsupported: "Bu səhifə yalnız XuguDB əlaqələrini dəstəkləyir.", + loadFailed: "Xugu-nun icra vəziyyətini oxumaq mümkün olmadı.", + partialData: "Bəzi monitorinq görünüşlərini oxumaq mümkün olmadı. Cari hesabın sistem görünüşlərinə giriş səlahiyyətləri olmaya bilər; oxuna bilən verilənlər yenə də göstərilir.", + readOnlyHint: "Yalnız oxuma üçün monitorinq; verilənlər bazasının vəziyyəti dəyişdirilmir", + version: "Verilənlər bazasının versiyası", + onlineNodes: "Şəbəkədə olan qovşaqlar", + sessions: "Sessiyalar", + activeCount: "{count} aktiv", + transactions: "Aktiv tranzaksiyalar", + lockWaits: "Kilid gözləmələri (cədvəl səviyyəsində)", + lockOwners: "Saxlanılan kilidlər", + nodes: "Qovşağın vəziyyəti", + node: "Qovşaq", + type: "Növ", + state: "Vəziyyət", + cpuLoad: "CPU yükü (məlumat üçün)", + diskRead: "Diskdən oxuma", + diskWrite: "Diskə yazma", + memoryAndCache: "Keş və yaddaş", + memoryHint: "Sistem yaddaşı görünüşlərindən", + bufferPool: "Verilənlərin bufer hovuzu", + sga: "SGA", + swap: "Mübadilə yaddaşı", + usedPercent: "{percent}% istifadə olunub", + dirtyPages: "Dəyişdirilmiş {value}", + runtimeAndWrite: "İcra müddəti və yazmalar", + cumulativeHint: "Yığılan sayğaclar; yeniləmə zamanı sıfırlanmır", + walPending: "Yoxlama nöqtəsini gözləyən WAL", + transactionSpan: "Tranzaksiya ID aralığı (risk göstəricisi)", + freeStores: "Boş saxlama sahələri", + datafiles: "Verilənlər faylları", + sessionsAndTransactions: "Sessiyalar və tranzaksiyalar", + activeSessionHint: "Aktiv sessiyalara bu monitorinq sorğusu da daxildir", + idleSessions: "Boşdayanan sessiyalar", + executingSessions: "İcra olunan sessiyalar", + otherSessions: "Digər vəziyyətlər", + oldestStatement: "Ən köhnə aktiv ifadənin başlama vaxtı", + oldestTransaction: "Ən köhnə aktiv tranzaksiyanın başlama vaxtı", + locksAndCapacity: "Kilidlər və tutum", + tablespaces: "Cədvəl məkanları", + mediaErrors: "Yaddaş daşıyıcısı xətaları", + lockModes: "Saxlanılan kilidlərin rejimləri", + dataTempFree: "DATA/TEMP boş {value}", + rowLockLimit: "Kilid gözləmələri yalnız cədvəl səviyyəsindəki kilidləri əhatə edir; sətir bloklanmalarını uzun tranzaksiyalar vasitəsilə araşdırın.", + bootTime: "Başlama vaxtı", + rack: "Stellaj {rack}", + stores: "{count} saxlama sahəsi", + emptyNodes: "Qovşaq verilənləri qaytarılmadı və ya hesabın SYS_CLUSTERS-ə girişi yoxdur.", + nodeState: { + joining: "Qoşulur", + running: "İşləyir", + error: "Xəta", + offline: "Şəbəkədən kənar", + unknown: "Naməlum", + }, + nodeType: { + master: "Əsas", + standby: "Ehtiyat", + storage: "Saxlama", + query: "Sorğu", + worker: "İşçi", + change: "Dəyişiklik", + unknown: "Naməlum", + }, + }, + userAdmin: { + title: "İstifadəçilər və səlahiyyətlər", + unsupported: "MySQL və PostgreSQL ilə uyğun əlaqələr dəstəklənir. SQL Server, Oracle və digər icazə modelləri sonradan əlavə edilə bilər.", + newUser: "Yeni istifadəçi", + anonymous: "Anonim", + roleName: "Rolun adı", + allowLogin: "Girişə icazə ver", + searchUser: "İstifadəçi və ya host axtar", + loadingUsers: "İstifadəçilər yüklənir...", + loadingGrants: "Verilmiş səlahiyyətlər yüklənir...", + emptyUsers: "İstifadəçi tapılmadı və ya cari hesab istifadəçi siyahısını oxuya bilmir.", + pluginUnknown: "Kimlik doğrulama plagini naməlumdur", + grants: "Verilmiş səlahiyyətlər", + noGrants: "Verilmiş səlahiyyət tapılmadı", + privilegeEditor: "Səlahiyyət redaktoru", + privilegeHint: "Səlahiyyətləri, verilənlər bazasını və cədvəli seçin, sonra tətbiq etməzdən əvvəl SQL-ə önbaxış edin. * qlobal və ya bütün cədvəllər deməkdir.", + database: "Verilənlər bazası", + schema: "Sxem", + table: "Cədvəl", + scope: "Səlahiyyətin əhatə dairəsi", + scopeDatabase: "Verilənlər bazası", + scopeSchema: "Sxem", + scopeTable: "Cədvəl", + scopeRole: "Rol üzvlüyü", + memberRole: "Üzv rol", + privileges: "Səlahiyyətlər", + grantOption: "Səlahiyyətlərin başqalarına verilməsinə icazə ver (WITH GRANT OPTION)", + adminOption: "Üzvlüyün idarə olunmasına icazə ver (WITH ADMIN OPTION)", + grant: "Səlahiyyət ver", + revoke: "Geri al", + username: "İstifadəçi adı", + host: "Host", + addHost: "Host əlavə et", + changeHost: "Hostu dəyiş", + newHost: "Yeni host", + changePassword: "Parolu dəyiş", + newPassword: "Yeni parol", + lock: "Kilidlə", + unlock: "Kilidi aç", + disableLogin: "Girişi deaktiv et", + enableLogin: "Girişi aktiv et", + dropUser: "İstifadəçini sil", + previewSql: "SQL-ə önbaxış et", + sqlPreview: "SQL önbaxışı", + applySql: "SQL-i tətbiq et", + applySuccess: "İstifadəçi səlahiyyətləri yeniləndi", + applyPartial: "İstifadəçi yaradıldı, lakin bəzi səlahiyyətləri vermək mümkün olmadı", + applyFailedSummary: "Əməliyyat uğursuz oldu", + applyFailed: "İcra uğursuz oldu: {message}", + applyFailedUnknown: "İcra uğursuz oldu", + standardUser: "Standart istifadəçi", + standardUserHint: "Yalnız aşağıda seçilmiş verilənlər bazalarına giriş və səlahiyyətlər verin.", + adminUser: "İnzibatçı istifadəçi", + adminUserHint: "İnstansiya səviyyəsində yüksək səlahiyyətli hesab yaradın.", + adminUserWarning: "Bu hesab verilənlər bazalarını və digər istifadəçiləri idarə edə bilər. Tətbiq etməzdən əvvəl bütün SQL-i diqqətlə nəzərdən keçirin.", + databaseAccess: "Verilənlər bazasına giriş", + databaseAccessHint: "Verilənlər bazalarını seçin və hər biri üçün ayrıca icazə səviyyəsi təyin edin.", + tableScope: "Cədvəllərin əhatə dairəsi", + allTables: "Bütün cədvəllər", + specificTables: "Müəyyən cədvəllər", + chooseTables: "Cədvəlləri seç", + selectedTableCount: "{count} cədvəl seçilib", + searchTable: "Cədvəlləri axtar", + loadingTables: "Cədvəllər yüklənir...", + emptyTables: "Cədvəl tapılmadı", + loadTablesFailed: "Cədvəlləri yükləmək mümkün olmadı: {message}", + tableSelectionRequired: "Ən azı bir cədvəl seçin.", + selectAllTables: "Hamısını seç", + clearAllTables: "Təmizlə", + retry: "Yenidən cəhd et", + selectedDatabaseCount: "{count} verilənlər bazası", + searchDatabase: "Verilənlər bazalarını axtar", + loadingDatabases: "Verilənlər bazaları yüklənir...", + emptyDatabases: "Verilənlər bazası tapılmadı", + loadDatabasesFailed: "Verilənlər bazalarını yükləmək mümkün olmadı: {message}", + prepareAuthorizationFailed: "Verilənlər bazasına giriş səlahiyyətlərini hazırlamaq mümkün olmadı: {message}", + presetReadWrite: "Oxuma/yazma", + presetReadOnly: "Yalnız oxuma", + presetDdl: "Yalnız DDL", + presetDml: "Yalnız DML", + presetCustom: "Fərdi", + customPrivilegeRequired: "Ən azı bir səlahiyyət seçin.", + postgresDdlHint: "PostgreSQL verilənlər bazası/sxem üzrə CREATE səlahiyyəti verir. Obyektləri dəyişdirmək və ya silmək üçün yenə də sahiblik tələb olunur.", + resultSuccess: "Bütün addımlar uğurla tamamlandı", + resultPartial: "Qismən tamamlandı", + resultFailed: "İcra uğursuz oldu", + closeResult: "Bağla", + stepCreateUser: "İstifadəçi və ya rol yarat", + stepGrantAdmin: "{user} istifadəçisinə inzibatçı səlahiyyətləri ver", + stepGrantDatabase: '{user} istifadəçisinə "{database}" verilənlər bazasına giriş icazəsi ver', + stepGrantTable: '{user} istifadəçisinə "{database}.{table}" cədvəlinə giriş icazəsi ver', + stepGrantObjects: '{user} istifadəçisinə "{database}" verilənlər bazasında sxem və obyekt icazələri ver', + stepGrantCurrentObjects: '"{database}" verilənlər bazasındakı "{schema}" sxemində mövcud olan {scope} üçün {user} istifadəçisinə icazə ver', + stepGrantFutureObjects: '"{database}" verilənlər bazasında cari rolun gələcəkdə yaradacağı {scope} üçün {user} istifadəçisinə icazə ver', + stepGrantFutureObjectsForOwner: '"{database}" verilənlər bazasında {owner} tərəfindən gələcəkdə yaradılacaq {scope} üçün {user} istifadəçisinə icazə ver', + scopeSchemas: "sxemlər", + scopeTables: "cədvəllər", + scopeSequences: "ardıcıllıqlar", + scopeFunctions: "funksiyalar", + stepSkipped: "Tələb olunan əvvəlki addım uğursuz olduğu üçün ötürüldü.", + }, + damengJobAdmin: { + title: "Dameng agent tapşırıqları", + unsupported: "Bu səhifə yalnız Dameng əlaqələrini dəstəkləyir.", + initEnvironment: "Tapşırıq mühitini ilkin hazırla", + environmentReady: "Tapşırıq mühiti hazırdır", + newJob: "Yeni tapşırıq", + searchJob: "Tapşırıqları axtar", + loadFailed: "Yükləmə uğursuz oldu", + environmentMissingTitle: "Tapşırıq mühiti ilkin hazırlanmayıb", + environmentMissingHint: "Bu verilənlər bazasında hələ SYSJOB tapşırıq mühiti yoxdur.", + environmentMissingDescription: "Dameng agent tapşırıqları üçün SYSJOB sxemində sistem cədvəlləri və görünüşləri tələb olunur. Əvvəlcə tapşırıq mühitini ilkin hazırlayın; adətən inzibatçı səlahiyyətləri tələb olunur.", + emptyJobs: "Tapşırıq tapılmadı və ya cari hesab tapşırıq siyahısını oxuya bilmir.", + emptyDetails: "Təfərrüat sətirləri yoxdur", + selectJob: "Tapşırıq seç", + enabled: "Aktiv", + disabled: "Deaktiv", + running: "İşləyir", + enable: "Aktiv et", + disable: "Deaktiv et", + runAsync: "İndi işlət", + stopRunning: "Cari icranı dayandır", + stopRunningDisabled: "Yalnız hazırda işləyən tapşırıqlar dayandırıla bilər", + clearHistories: "Tarixçəni təmizlə", + dropJob: "Sil", + steps: "Addımlar", + schedules: "Cədvəllər", + histories: "Tarixçə", + noDescription: "Təsvir yoxdur", + jobName: "Tapşırığın adı", + description: "Təsvir", + stepName: "Addımın adı", + scheduleName: "Cədvəlin adı", + sqlCommand: "SQL skripti", + scheduleMode: "Cədvəlin növü", + daily: "Gündəlik", + once: "Bir dəfə", + startDate: "Başlama tarixi", + startTime: "Başlama vaxtı", + endTime: "Bitmə vaxtı", + minuteInterval: "Dəqiqə intervalı", + previewSql: "SQL-ə önbaxış et", + sqlPreview: "SQL önbaxışı", + applySql: "SQL-i tətbiq et", + applySuccess: "Tapşırıq əməliyyatı tətbiq edildi", + applyFailed: "İcra uğursuz oldu: {message}", + }, + xuguSchedulerJob: { + enable: "Aktiv et", + disable: "Deaktiv et", + run: "İndi işlət", + drop: "Tapşırığı sil", + confirmDrop: '"{name}" planlaşdırılmış tapşırığı silinsin? Bunu geri qaytarmaq mümkün deyil.', + actionSuccess: '"{name}" üçün {action} tamamlandı.', + }, + damengUserAdmin: { + title: "Dameng istifadəçiləri", + unsupported: "Bu səhifə yalnız Dameng verilənlər bazası əlaqələrini dəstəkləyir.", + newUser: "Yeni istifadəçi", + searchUser: "İstifadəçiləri axtar", + loadFailed: "Yükləmə uğursuz oldu", + emptyUsers: "İstifadəçi yoxdur və ya cari hesab istifadəçi siyahısını oxuya bilmir.", + selectUser: "İstifadəçi seç", + username: "İstifadəçi adı", + usernamePlaceholder: "məs. APP_USER", + password: "Parol", + passwordPolicyHint: "Parol DM8 parol siyasətinə uyğun olmalıdır (standart: ən azı 9 simvol; böyük və kiçik hərflərlə rəqəmləri birləşdirmək tövsiyə olunur)", + tablespace: "Standart cədvəl məkanı", + tablespacePlaceholder: "Cədvəl məkanının adını daxil edin", + locked: "Yaradıldıqdan sonra hesabı kilidlə", + changePassword: "Parolu dəyiş", + newPassword: "Yeni parol", + confirmPassword: "Parolu təsdiqlə", + open: "Aç", + systemUser: "Sistem istifadəçisi", + systemUserAdmin: "İnzibatçı istifadəçi", + systemUserAuditor: "Audit istifadəçisi", + systemUserSecurity: "Təhlükəsizlik istifadəçisi", + systemUserSystem: "Sistem istifadəçisi", + cannotChangePassword: "Bu istifadəçinin parolu cari əlaqə vasitəsilə dəyişdirilə bilməz (yalnız SYSDBA və ya istifadəçinin özü dəyişə bilər)", + inheritedFrom: "{via} vasitəsilə miras alınıb", + userType: "İstifadəçi növü", + userTypeHint: "İnzibatçı növü avtomatik olaraq DBA, audit növü DB_AUDIT_ADMIN, təhlükəsizlik növü isə DB_POLICY_ADMIN səlahiyyəti verir", + groupOther: "Digər istifadəçilər", + systemUserProtected: "Sistem istifadəçiləri dəyişdirilə və ya silinə bilməz", + builtinRole: "Daxili rol", + builtinRoleProtected: "Daxili rollar geri alına bilməz", + defaultTablespace: "Standart cədvəl məkanı", + created: "Yaradılıb", + lock: "Kilidlə", + unlock: "Kilidi aç", + dropUser: "İstifadəçini sil", + roles: "Rollar", + systemPrivileges: "Sistem səlahiyyətləri", + grantedRoles: "Verilmiş rollar", + grantedPrivileges: "Verilmiş səlahiyyətlər", + grantRole: "Rol ver", + revokeRole: "Rolu geri al", + roleToGrant: "Veriləcək rol", + selectRole: "Rol seç", + grantRoleHint: "{user} istifadəçisinə rol verin.", + noRolesToGrant: "Veriləcək rol yoxdur", + noGrantedRoles: "Bu istifadəçiyə rol verilməyib", + grantPrivilege: "Səlahiyyət ver", + revokePrivilege: "Səlahiyyəti geri al", + privilegeToGrant: "Veriləcək səlahiyyət", + selectPrivilege: "Səlahiyyət seç", + grantPrivilegeHint: "{user} istifadəçisinə sistem səlahiyyəti verin.", + noPrivilegesToGrant: "Veriləcək səlahiyyət yoxdur", + noGrantedPrivileges: "Bu istifadəçiyə sistem səlahiyyəti verilməyib", + previewSql: "SQL-ə önbaxış et", + sqlPreview: "SQL önbaxışı", + applySql: "SQL-i tətbiq et", + applySuccess: "İstifadəçi əməliyyatı tətbiq edildi", + applyFailed: "İcra uğursuz oldu: {message}", + enableDdlAnyPrivHint: + "İpucu: DM8 standart olaraq DDL ANY səlahiyyətlərinin verilməsini deaktiv edir (ENABLE_DDL_ANY_PRIV=0). ANY növlü səlahiyyətləri vermək üçün SYSDBA kimi icra edin: sp_set_para_value(1,'ENABLE_DDL_ANY_PRIV',1). ANY növünə aid olmayan səlahiyyətlər üçün cari hesabın həmin səlahiyyət üzrə ADMIN OPTION hüququna malik olduğuna əmin olun.", + anyPrivilegeDisabled: "ANY növlü səlahiyyətlər DM8 tərəfindən deaktiv edilib (ENABLE_DDL_ANY_PRIV=0) və verilə və ya geri alına bilməz", + }, + damengRoleAdmin: { + title: "Dameng rolları", + unsupported: "Bu səhifə yalnız Dameng verilənlər bazası əlaqələrini dəstəkləyir.", + newRole: "Yeni rol", + searchRole: "Rolları axtar", + loadFailed: "Yükləmə uğursuz oldu", + emptyRoles: "Rol yoxdur və ya cari hesab rol siyahısını oxuya bilmir.", + selectRole: "Rol seç", + roleName: "Rolun adı", + roleNamePlaceholder: "məs. APP_ROLE", + members: "Üzvlər", + systemPrivileges: "Sistem səlahiyyətləri", + grantedToUsers: "Bu rol verilmiş istifadəçilər", + grantedPrivileges: "Verilmiş səlahiyyətlər", + noMembers: "Bu rol heç bir istifadəçiyə verilməyib", + grantToUser: "İstifadəçiyə ver", + userToGrant: "Səlahiyyət veriləcək istifadəçi", + selectUser: "İstifadəçi seç", + grantUserHint: "İstifadəçiyə {role} rolunu verin.", + noUsersToGrant: "Səlahiyyət veriləcək istifadəçi yoxdur", + revokeFromUser: "Geri al", + systemUser: "Sistem istifadəçisi", + systemUserProtected: "Sistem istifadəçilərindən geri almaq mümkün deyil", + builtinRole: "Daxili rol", + builtinRoleProtected: "Əvvəlcədən təyin edilmiş rollar silinə və ya dəyişdirilə bilməz", + grantPrivilege: "Səlahiyyət ver", + revokePrivilege: "Səlahiyyəti geri al", + privilegeToGrant: "Veriləcək səlahiyyət", + selectPrivilege: "Səlahiyyət seç", + grantPrivilegeHint: "{role} roluna sistem səlahiyyəti verin.", + noPrivilegesToGrant: "Veriləcək səlahiyyət yoxdur", + noGrantedPrivileges: "Bu rola sistem səlahiyyəti verilməyib", + dropRole: "Rolu sil", + previewSql: "SQL-ə önbaxış et", + sqlPreview: "SQL önbaxışı", + applySql: "SQL-i tətbiq et", + applySuccess: "Rol əməliyyatı tətbiq edildi", + applyFailed: "İcra uğursuz oldu: {message}", + enableDdlAnyPrivHint: + "İpucu: DM8 standart olaraq DDL ANY səlahiyyətlərinin verilməsini deaktiv edir (ENABLE_DDL_ANY_PRIV=0). ANY növlü səlahiyyətləri vermək üçün SYSDBA kimi icra edin: sp_set_para_value(1,'ENABLE_DDL_ANY_PRIV',1). ANY növünə aid olmayan səlahiyyətlər üçün cari hesabın həmin səlahiyyət üzrə ADMIN OPTION hüququna malik olduğuna əmin olun.", + anyPrivilegeDisabled: "ANY növlü səlahiyyətlər DM8 tərəfindən deaktiv edilib (ENABLE_DDL_ANY_PRIV=0) və verilə və ya geri alına bilməz", + }, + objects: { + all: "Hamısı", + tables: "Cədvəllər", + collections: "Kolleksiyalar", + views: "Görünüşlər", + procedures: "Prosedurlar", + functions: "Funksiyalar", + sequences: "Ardıcıllıqlar", + packages: "Paketlər", + table: "Cədvəl", + collection: "Kolleksiya", + partitions: "{count} bölmə", + view: "Görünüş", + timeseries: "Zaman sırası", + procedure: "Prosedur", + function: "Funksiya", + trigger: "Tətikləyici", + triggerTiming: "İcra vaxtı", + triggerEvent: "Hadisə", + triggerLevel: "Səviyyə", + triggerStatus: "Vəziyyət", + triggerCondition: "Şərt", + triggerLanguage: "Dil", + enabled: "Aktiv", + disabled: "Deaktiv", + validity: "Etibarlılıq", + valid: "Etibarlı", + invalid: "Etibarsız", + sequence: "Ardıcıllıq", + package: "Paket", + packageBody: "Paketin gövdəsi", + typeDefinition: "Növ", + typeBody: "Növün gövdəsi", + name: "Ad", + type: "Növ", + rows: "Sətirlər", + series: "Sıralar", + size: "Ölçü", + statisticsHint: "Verilənlər bazasının statistikası əsasında təxmin edilir; COUNT(*) icra olunmur.", + createdAt: "Yaradılıb", + updatedAt: "Yenilənib", + source: "Mənbə", + saveSource: "Yadda saxla", + cancelEdit: "Ləğv et", + sourceSaved: "Mənbə yadda saxlanıldı", + sourceSaveFailed: "Mənbəni yadda saxlamaq mümkün olmadı: {message}", + postgresViewColumnChangeHint: + "PostgreSQL mövcud görünüş sütunlarını silmək, sıralarını, adlarını və ya növlərini dəyişmək üçün CREATE OR REPLACE VIEW əmrindən istifadə edə bilmir. Mövcud sütunların sayını, sırasını, adlarını və növlərini dəyişməz saxlayın; yeni sütunlar yalnız sona əlavə edilə bilər. Sütunun adını dəyişmək üçün ALTER VIEW ... RENAME COLUMN əmrindən istifadə edin. Sütunu silmək üçün asılılıqları nəzərdən keçirin və görünüşü əl ilə yenidən yaradın.", + sourceReadOnly: "Bu mənbə yalnız oxuma üçündür və redaktə edilə bilməz.", + schemaColumn: "Sxem", + comment: "Şərh", + loadingSchemas: "Sxemlər yüklənir...", + schema: "Sxem", + search: "Cədvəlləri, görünüşləri, funksiyaları, ardıcıllıqları və ya prosedurları axtar...", + searchCollections: "Kolleksiyaları axtar...", + loading: "Obyektlər yüklənir...", + empty: "Obyekt tapılmadı", + selectedTables: "{count} cədvəl seçilib", + exportSelected: "Seçilənləri ixrac et", + dropSelected: "Seçilənləri sil", + truncateSelected: "Seçilənləri boşalt", + clearSelection: "Seçimi təmizlə", + confirmBatchDropTitle: "Seçilmiş cədvəlləri sil", + confirmBatchDropMessage: "Seçilmiş {count} cədvəli silmək istədiyinizə əminsiniz? Bu əməliyyat geri qaytarıla bilməz.", + confirmBatchTruncateTitle: "Seçilmiş cədvəlləri boşalt", + confirmBatchTruncateMessage: "Seçilmiş {count} cədvəli boşaltmaq istədiyinizə əminsiniz? Bu əməliyyat bütün sətirləri siləcək.", + batchDropSuccess: "{count} cədvəl silindi", + batchTruncateSuccess: "{count} cədvəl boşaldıldı", + copyTableSelected: "Kopyala", + pasteTableSelected: "Yerləşdir", + toggleCheckbox: "Çoxlu seçimi dəyiş", + viewList: "Siyahı görünüşü", + viewGrid: "Tor görünüşü", + sortAsc: "Artan", + sortDesc: "Azalan", + sortBy: "Sıralama meyarı", + }, + structureEditor: { + title: "Cədvəl quruluşunu redaktə et", + createTitle: "Cədvəl yarat", + editTabTitle: "Redaktə et: {tableName}", + tableName: "Cədvəlin adı", + refresh: "Quruluşu yenilə", + density: "Sıxlıq", + densityCompact: "Yığcam", + densityStandard: "Standart", + densityComfortable: "Rahat", + columns: "Sütunlar", + indexes: "İndekslər", + foreignKeys: "Xarici açarlar", + constraints: "Məhdudiyyətlər", + constraintDisabled: "Deaktiv", + constraintNotValidated: "Yoxlanılmayıb", + triggers: "Tətikləyicilər", + ddl: "DDL", + addColumn: "Sütun əlavə et", + copyColumns: "Başqa cədvəldən sahələri kopyala", + copyColumn: "Sütunu kopyala", + copyColumnsTitle: "Başqa cədvəldən sütunları kopyala", + copyColumnsSourceTable: "Mənbə cədvəli", + copyColumnsSearchSourceTables: "Mənbə cədvəllərini axtar", + copyColumnsSelectFields: "Sahələri seç", + copyColumnsSearchFields: "Sahələri və ya növləri axtar", + copyColumnsSelectAll: "Hamısını seç", + copyColumnsClearSelection: "Seçimi təmizlə", + copyColumnsNoSourceTables: "Bu sxemdə başqa cədvəl yoxdur.", + copyColumnsNoMatchingSourceTables: "Axtarışa uyğun mənbə cədvəli yoxdur.", + copyColumnsPreviousSourceTablePage: "Mənbə cədvəllərinin əvvəlki səhifəsi", + copyColumnsNextSourceTablePage: "Mənbə cədvəllərinin növbəti səhifəsi", + copyColumnsNoFields: "Seçilmiş cədvəldə sahə yoxdur.", + copyColumnsNoMatchingFields: "Axtarışa uyğun sahə yoxdur.", + copyColumnsAlreadyExists: "Artıq mövcuddur", + copyColumnsCancel: "Ləğv et", + copyColumnsApply: "{count} sahəni kopyala", + columnTemplates: "Əvvəlcədən təyin edilmiş sahələri daxil et", + configureColumnTemplates: "Əvvəlcədən təyin edilmiş sahələri tənzimlə", + presetFieldsTemplate: "Əvvəlcədən təyin edilmiş sahə dəsti", + searchColumns: "Sütun/şərh axtar", + nextColumnMatch: "Növbəti uyğun sütuna keç", + searchIndexes: "İndeks axtar", + nextIndexMatch: "Növbəti uyğun indeksə keç", + addIndex: "İndeks əlavə et", + addForeignKey: "Xarici açar əlavə et", + addTrigger: "Tətikləyici əlavə et", + columnName: "Sütun", + dataType: "Növ", + typePlaceholder: "Seçin və ya yazın...", + noMatchingType: "Uyğun növ yoxdur", + mysqlDataTypeHelp: { + tinyint: "1 baytlıq tam ədəd. İşarəli aralıq: -128 ilə 127 arası; işarəsiz aralıq: 0 ilə 255 arası.", + smallint: "2 baytlıq tam ədəd. İşarəli aralıq: -32,768 ilə 32,767 arası; işarəsiz aralıq: 0 ilə 65,535 arası.", + mediumint: "3 baytlıq tam ədəd. İşarəli aralıq: -8,388,608 ilə 8,388,607 arası; işarəsiz aralıq: 0 ilə 16,777,215 arası.", + int: "4 baytlıq tam ədəd. İşarəli aralıq: -2,147,483,648 ilə 2,147,483,647 arası; işarəsiz aralıq: 0 ilə 4,294,967,295 arası.", + bigint: "8 baytlıq tam ədəd. İşarəli aralıq: -2^63 ilə 2^63-1 arası; işarəsiz aralıq: 0 ilə 2^64-1 arası.", + decimal: "Sabit vergüllü dəqiq ədəd. MySQL ümumi dəqiqlik üçün 65 rəqəmə, kəsr hissəsi üçün isə 30 rəqəmə qədər dəstək verir; MariaDB versiyalarında hədlər fərqlənə bilər. Pul və digər dəqiq dəyərlər üçün istifadə edin.", + float: "Tək dəqiqlikli təqribi ədəd. Dəqiq onluq dəyərlər tələb olunduqda DECIMAL növündən istifadə edin.", + double: "İkiqat dəqiqlikli təqribi ədəd. Dəqiq onluq dəyərlər tələb olunduqda DECIMAL növündən istifadə edin.", + real: "Standart olaraq DOUBLE üçün alternativ addır; REAL_AS_FLOAT SQL rejimi onu FLOAT üçün alternativ ada çevirir.", + bit: "1 ilə 64 bit arasında bit sahəsi. Standart en 1 bitdir.", + boolean: "TINYINT(1) üçün alternativ ad: 0 yanlış, sıfırdan fərqli dəyərlər isə doğru dəyərini bildirir.", + serial: "BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE üçün rahat alternativ ad.", + date: "Təqvim tarixi. Dəstəklənən aralıq: 1000-01-01 ilə 9999-12-31 arası.", + datetime: "Saat qurşağı çevrilməsi olmadan tarix və vaxt. Dəstəklənən aralıq: 1000-01-01 00:00:00 ilə 9999-12-31 23:59:59 arası; saniyənin kəsr hissəsinin dəqiqliyi 0 ilə 6 arasındadır (standart 0).", + timestamp: "Sessiyanın saat qurşağı ilə UTC arasında çevrilən tarix və vaxt. Dəstəklənən aralıq: 1970-01-01 00:00:01 UTC ilə 2038-01-19 03:14:07 UTC arası; saniyənin kəsr hissəsinin dəqiqliyi 0 ilə 6 arasındadır (standart 0).", + time: "Günün vaxtı və ya keçən müddət. Dəstəklənən aralıq: -838:59:59 ilə 838:59:59 arası; saniyənin kəsr hissəsinin dəqiqliyi 0 ilə 6 arasındadır (standart 0).", + year: "İl dəyəri. Dördrəqəmli dəyərlər 1901 ilə 2155 arasındadır, həmçinin 0000 mümkündür.", + char: "255 simvola qədər sabit uzunluqlu simvol sətri. Saxlanılan dəyərlərin sağı boşluqlarla doldurulur.", + varchar: "Dəyişən uzunluqlu simvol sətri. Praktik maksimumu sətir ölçüsü və simvol dəsti ilə məhdudlaşır.", + tinytext: "255 bayta qədər dəyişən uzunluqlu mətn. Simvol dəsti, sətir ölçüsü və max_allowed_packet məhdudiyyətləri praktik həddi daha da azalda bilər.", + text: "65,535 bayta qədər dəyişən uzunluqlu mətn. Simvol dəsti, sətir ölçüsü və max_allowed_packet məhdudiyyətləri praktik həddi daha da azalda bilər.", + mediumtext: "16,777,215 bayta qədər dəyişən uzunluqlu mətn. Simvol dəsti, sətir ölçüsü və max_allowed_packet məhdudiyyətləri praktik həddi daha da azalda bilər.", + longtext: "4,294,967,295 bayta (təxminən 4 GiB) qədər dəyişən uzunluqlu mətn. Simvol dəsti, sətir ölçüsü və max_allowed_packet məhdudiyyətləri praktik həddi daha da azalda bilər.", + binary: "255 bayta qədər sabit uzunluqlu ikilik bayt sətri. Saxlanılan dəyərlər 0x00 ilə doldurulur.", + varbinary: "Dəyişən uzunluqlu ikilik bayt sətri. Praktik maksimumu sətir ölçüsü ilə məhdudlaşır.", + tinyblob: "255 bayta qədər böyük ikilik obyekt. Sətir ölçüsü və max_allowed_packet məhdudiyyətləri praktik həddi daha da azalda bilər.", + blob: "65,535 bayta qədər böyük ikilik obyekt. Sətir ölçüsü və max_allowed_packet məhdudiyyətləri praktik həddi daha da azalda bilər.", + mediumblob: "16,777,215 bayta qədər böyük ikilik obyekt. Sətir ölçüsü və max_allowed_packet məhdudiyyətləri praktik həddi daha da azalda bilər.", + longblob: "4,294,967,295 bayta (təxminən 4 GiB) qədər böyük ikilik obyekt. Sətir ölçüsü və max_allowed_packet məhdudiyyətləri praktik həddi daha da azalda bilər.", + enum: "Elan edilmiş ən çox 65,535 literaldan seçilən bir dəyər. Literalların sırasını dəyişmək saxlanılan dəyərlərin mənasını dəyişə bilər.", + set: "Elan edilmiş ən çox 64 üzvdən seçilən sıfır və ya daha çox dəyər.", + json: "Düzgünlüyü yoxlanılmış JSON sənədi. Saxlama təqdimatı və JSON imkanlarının dəstəyi əlaqə qurulan server məhsulundan və versiyasından asılıdır; sənədin ölçüsü həmçinin max_allowed_packet ilə məhdudlaşır.", + jsonMysql: "JSON funksiyaları və doğrulama ilə MySQL-in öz ikilik JSON sənəd növü. Sənədin ölçüsü max_allowed_packet ilə məhdudlaşır.", + jsonMariaDb: "MariaDB JSON, JSON_VALID məhdudiyyəti və utf8mb4_bin müqayisə qaydası olan LONGTEXT üçün alternativ addır; sənədin ölçüsü max_allowed_packet ilə məhdudlaşır.", + nationalCharacter: "Milli simvol sətri üçün alternativ ad. MySQL-də əvvəlcədən təyin edilmiş milli simvol dəstindən (utf8mb3, köhnəlib) istifadə edir; yeni sxemlər üçün açıq şəkildə utf8mb4 simvol dəstini seçin.", + geometry: "Dəstəklənən istənilən həndəsi növün məkan dəyəri. MySQL InnoDB SPATIAL indeksi SRID atributlu NOT NULL sütunu tələb edir.", + point: "Bir koordinat cütü olan məkan nöqtəsi. MySQL InnoDB SPATIAL indeksi SRID atributlu NOT NULL sütunu tələb edir.", + linestring: "Bir və ya daha çox birləşdirilmiş nöqtədən ibarət məkan əyrisi. MySQL InnoDB SPATIAL indeksi SRID atributlu NOT NULL sütunu tələb edir.", + polygon: "Bir və ya daha çox halqa ilə əhatə olunmuş məkan səthi. MySQL InnoDB SPATIAL indeksi SRID atributlu NOT NULL sütunu tələb edir.", + multipoint: "Məkan nöqtələri kolleksiyası. MySQL InnoDB SPATIAL indeksi SRID atributlu NOT NULL sütunu tələb edir.", + multilinestring: "Məkan əyriləri kolleksiyası. MySQL InnoDB SPATIAL indeksi SRID atributlu NOT NULL sütunu tələb edir.", + multipolygon: "Məkan çoxbucaqlıları kolleksiyası. MySQL InnoDB SPATIAL indeksi SRID atributlu NOT NULL sütunu tələb edir.", + geometrycollection: "Müxtəlif məkan həndəsəsi növlərini ehtiva edə bilən kolleksiya. MySQL InnoDB SPATIAL indeksi SRID atributlu NOT NULL sütunu tələb edir.", + inet4: "MariaDB IPv4 ünvan növü (MariaDB 10.10-dan etibarən mövcuddur); IPv4 ünvanını dörd baytda saxlayır.", + inet6: "IPv6 və uyğunlaşdırılmış IPv4 dəyərləri üçün MariaDB ilə uyğun ünvan növü.", + uuid: "Uyğun serverlərin təqdim etdiyi 128 bitlik universal unikal identifikator növü.", + vector: "Oxşarlıq və ya maşın öyrənməsi iş yükləri üçün vektor verilənlər növü; mövcudluğu və ölçüləri server versiyasından asılıdır.", + xmltype: "Uyğun serverlərin təqdim etdiyi XML verilənlər növü.", + integerDisplayWidth: "MySQL tam ədədlərinin göstərilmə eni (məsələn, INT(11)) köhnəlib və saxlanılan aralığı məhdudlaşdırmır. Yeni MySQL 8 sxemlərinə əlavə etməyin.", + zerofill: "ZEROFILL MySQL 8-də köhnəlib. O, həmçinin sütunu dolayı yolla UNSIGNED edir; əvəzinə tətbiqdə açıq formatlaşdırmadan istifadə edin.", + unsignedNumeric: "DECIMAL, FLOAT və ya DOUBLE üçün UNSIGNED MySQL 8-də köhnəlib. Mənfi olmayan dəyərlər tələb olunduqda CHECK məhdudiyyətindən istifadə edin.", + floatPrecision: "FLOAT(p) üçün p dəyəri 25 ilə 53 arasında olduqda FLOAT əvəzinə DOUBLE dəqiqliyi seçilir. Məqsədiniz budursa, açıq şəkildə DOUBLE növündən istifadə edin.", + floatingPointDisplay: "FLOAT(M,D) və DOUBLE(M,D) MySQL 8-də köhnəlib. Göstərilmə parametrləri olmadan FLOAT/DOUBLE növlərindən, dəqiq dəyərlər üçün isə DECIMAL(M,D) növündən istifadə edin.", + }, + postgresDataTypeHelp: { + smallint: "2 baytlıq işarəli tam ədəd, -32,768 ilə 32,767 arası.", + integer: "4 baytlıq işarəli tam ədəd, -2,147,483,648 ilə 2,147,483,647 arası.", + bigint: "8 baytlıq işarəli tam ədəd, -2^63 ilə 2^63-1 arası.", + serial: "Tam ədəd sütunu, ardıcıllıq, NOT NULL və nextval standart dəyərini yaradan rahat sintaksis. Öz-özlüyündə unikal deyil və ardıcıllıq dəyərlərində boşluqlar ola bilər; yeni sxemlər üçün IDENTITY-ni seçin.", + numeric: "İstifadəçinin seçdiyi ümumi və kəsr hissəsi dəqiqliyinə malik dəqiq onluq ədəd. Pul və ikilik sürüşən vergüllü yuvarlaqlaşdırma tətbiq edilməməli digər dəyərlər üçün istifadə edin.", + real: "4 baytlıq tək dəqiqlikli sürüşən vergüllü ədəd. p dəyəri 1 ilə 24 arasında olan FLOAT(p) bu növü seçir.", + double: "8 baytlıq ikiqat dəqiqlikli sürüşən vergüllü ədəd. Dəqiqlik göstərilməyən FLOAT onun alternativ adıdır; p dəyəri 25 ilə 53 arasında olan FLOAT(p) onu seçir.", + money: "Yerli formata uyğun pul məbləği. Çıxışı və təhlili lc_monetary parametrindən asılıdır; daşına bilən maliyyə verilənləri üçün NUMERIC adətən daha etibarlıdır.", + boolean: "Məntiqi doğru, yanlış və ya null dəyəri. BOOL, BOOLEAN üçün alternativ addır.", + char: "Boşluqlarla doldurulan sabit uzunluqlu simvol sətri. CHARACTER alternativ addır; sondakı boşluqlar əhəmiyyətli olduqda istifadə etməyin.", + varchar: "İstəyə bağlı simvol həddi olan dəyişən uzunluqlu simvol sətri. CHARACTER VARYING alternativ addır.", + text: "Elan edilmiş həddi olmayan dəyişən uzunluqlu simvol sətri; hədsiz VARCHAR ilə eyni qaydada saxlanılır.", + bytea: "Dəyişən uzunluqlu ikilik sətir. Böyük dəyərlər TOAST vasitəsilə sətirdən kənarda saxlanıla bilər.", + date: "Günün vaxtı və ya saat qurşağı olmayan təqvim tarixi.", + time: "Saat qurşağı olmayan günün vaxtı, saniyənin kəsr hissəsi üçün istəyə bağlı dəqiqliklə.", + timetz: "Günün vaxtı və UTC fərqi. Faydalılığı məhduddur və adətən tövsiyə edilmir; konkret zaman anı üçün timestamptz-dən istifadə edin.", + timestamp: "Saat qurşağı çevrilməsi olmadan tarix və vaxt. Saat qurşağı verilənlərin tərkib hissəsi olmayan yerli saat dəyərləri üçün istifadə edin.", + timestamptz: "Daxildə UTC ilə saxlanılan və sessiyanın saat qurşağında göstərilən zaman anı. İlkin adlandırılmış saat qurşağını saxlamır.", + interval: "Ay, gün və mikrosaniyələrlə ifadə olunan müddət. Təqvim vahidləri sabit uzunluqlu müddətlər deyil.", + uuid: "128 bitlik universal unikal identifikator.", + json: "İlkin daxil edilmiş formada saxlanılan JSON mətni. Sintaktik düzgünlüyü yoxlanılır, lakin emalı adətən JSONB-dən daha yavaşdır.", + jsonb: "Emal və indeksləmə üçün optimallaşdırılmış, tərkib hissələrinə ayrılmış ikilik JSON təqdimatı. Əhəmiyyətsiz boşluqları, açar sırasını və ya təkrarlanan açarları saxlamır.", + xml: "İstifadə olunan XML seçimindən asılı olaraq sənəd və ya məzmunun istəyə bağlı doğrulanması ilə XML dəyəri.", + bit: "Sabit və ya dəyişən uzunluqlu bit sətri. BIT VARYING və VARBIT dəyişən uzunluqlu alternativ adlardır.", + tsvector: "PostgreSQL tam mətn axtarışında axtarıla bilən sənəd tərəfi kimi istifadə olunan normallaşdırılmış leksemlər; adətən GIN və ya GiST ilə indekslənir.", + tsquery: "tsvector ilə müqayisə edilərək qiymətləndirilən məntiqi tam mətn axtarış sorğusu.", + cidr: "Host bitləri sıfırla məhdudlaşdırılmış IPv4 və ya IPv6 şəbəkəsi.", + inet: "İstəyə bağlı şəbəkə maskası ilə IPv4 və ya IPv6 host ünvanı; CIDR-dən fərqli olaraq, host bitləri sıfırdan fərqli ola bilər.", + macaddr: "MAC ünvanı. MACADDR 6 baytlıq, MACADDR8 isə 8 baytlıq ünvanları saxlayır.", + geometry: "Daxili ikiölçülü həndəsi növ. PostgreSQL həndəsəsi müstəvi üzərindədir və SRID atributu yoxdur; coğrafi koordinatlar, proyeksiyalar və ya mürəkkəb məkan əməliyyatları üçün PostGIS-dən istifadə edin.", + range: "Sərhədləri daxil edilən və ya edilməyən tək fasiləsiz aralıq. Aralıq dəyərləri uyğun alt növ tələb edir; bir neçə ayrı aralıq üçün multirange növlərindən istifadə edin.", + oid: "İşarəsiz obyekt identifikatoru. Bu, sistem identifikatorudur, tətbiq üçün daimi əsas açar deyil; tətbiq verilənləri üçün adi tam ədəddən və ya UUID-dən istifadə edin.", + array: "Çoxölçülü massivlər də daxil olmaqla istənilən element növünün PostgreSQL massivi. Elan edilmiş növ massiv ölçülərini məcburi etmir və massivlər çox vaxt normallaşdırılmış alt sətirlərdən daha az çevikdir.", + multirange: "Uyğun aralıq alt növünün üst-üstə düşməyən aralıqlar dəsti. PostgreSQL qonşu və ya üst-üstə düşən üzvləri alt növün qaydalarına uyğun normallaşdırır.", + jsonpath: "JSONB sorğu və predikat funksiyalarının istifadə etdiyi SQL/JSON yol ifadəsi.", + pgLsn: "Replikasiya və bərpa koordinatları üçün istifadə olunan əvvəlcədən yazma jurnalının mövqeyi; tətbiqin ardıcıllıq nömrəsi deyil.", + pgSnapshot: "Tranzaksiyanın görünmə vəziyyətinin ani surəti. Mətn təqdimatı ümumi tətbiq verilənləri üçün deyil, verilənlər bazasının ani surət əməliyyatları üçün nəzərdə tutulub.", + }, + sqliteDataTypeHelp: { + integer: "SQLite dinamik növləndirmə və INTEGER növ meylindən istifadə edir; adi sütun INTEGER saxlama sinfini məcburi etmir. Mümkün olduqda dəyərlər işarəli tam ədədlər kimi saxlanılır; INTEGER PRIMARY KEY (dəqiq bu yazılışla) rowid üçün xüsusi alternativ addır.", + real: "REAL növ meyli IEEE 754 sürüşən vergüllü dəyərlərini saxlayır. Təqribi ölçmələr üçün uyğundur, dəqiq pul və ya onluq hesablamalar üçün deyil.", + text: "TEXT növ meyli mətni verilənlər bazasının kodlaşdırmasında saxlayır. SQLite-da VARCHAR(n) və CHAR(n) n həddini məcburi etmir; uzunluq həddi vacib olduqda CHECK məhdudiyyəti əlavə edin.", + blob: "BLOB növ meyli baytları növ çevrilməsi olmadan, təqdim edildiyi kimi saxlayır.", + numeric: + "NUMERIC növ meyli düzgün formatlanmış ədədi mətni əvvəlcə INTEGER, sonra REAL növünə çevirməyə çalışır; ayrıca SQLite saxlama sinfi deyil. DATE, DATETIME və TIME elanları da NUMERIC növ meylinə malikdir; ISO-8601 formatını TEXT, Yulian gününü REAL və ya Unix vaxtını INTEGER kimi ardıcıl qaydada saxlayın.", + }, + length: "Uzunluq", + lengthUnit: "Uzunluq vahidi", + unitPlaceholder: "Vahid", + enumValues: "Sadalanan dəyərlər", + enumValueCount: "{count} dəyər", + addEnumValue: "Dəyər əlavə et", + removeEnumValue: "Sadalanan dəyəri çıxar", + enumValuePlaceholder: "Dəyər (boş ola bilər)", + nullable: "NULL ola bilər", + primaryKey: "Əsas açar", + defaultValue: "Standart", + defaultValuePresets: "Əvvəlcədən təyin edilmiş standart dəyərlər", + comment: "Şərh", + characterSet: "Simvol dəsti", + charsetPlaceholder: "Simvol dəsti", + collation: "Müqayisə qaydası", + collationPlaceholder: "Müqayisə qaydası", + editComment: "Şərhi redaktə et", + commentPlaceholder: "Sütun şərhini daxil edin...", + tableCommentPlaceholder: "Cədvəl şərhini daxil edin...", + mysqlTableEngine: "Saxlama mühərriki", + mysqlTableEnginePlaceholder: "Saxlama mühərriki seçin", + mysqlTableEngineSearchPlaceholder: "Saxlama mühərriklərini axtar", + mysqlTableEngineEmpty: "Mövcud saxlama mühərriki yoxdur", + mysqlTableEngineLoadFailed: "Saxlama mühərriklərini yükləmək mümkün olmadı: {message}", + owner: "Sahib", + ownerPlaceholder: "Rolun adını daxil edin...", + ownerSearchPlaceholder: "Rolun adını axtarın və ya daxil edin...", + ownerRolesEmpty: "Rol tapılmadı; rolun adını əl ilə daxil edin", + ownerLoadFailed: "Cədvəlin sahibini yükləmək mümkün olmadı: {message}", + ownerRolesLoadFailed: "Rolları yükləmək mümkün olmadı; yenə də rolun adını əl ilə daxil edə bilərsiniz: {message}", + tableCommentUnsupported: "Bu verilənlər bazası cədvəl şərhlərini dəstəkləmir", + actions: "Əməliyyatlar", + indexName: "İndeks", + indexColumns: "Sütunlar", + indexColumnsPlaceholder: "Sütunları seçin...", + unique: "Unikal", + indexType: "Növ", + includedColumns: "Daxil edilmiş", + includedColumnsPlaceholder: "Sütunları seçin...", + filter: "Süzgəc", + concurrent: "Paralel", + concurrentTooltip: "Yazmaların bloklanmaması üçün indeksi paralel yaradın. Bu, adətən daha uzun çəkir və tranzaksiya bloku daxilində icra edilə bilməz.", + concurrentExistingIndexTooltip: "Yalnız yeni indekslər üçün mövcuddur. Mövcud indeksin paralel yenidən yaradılması (DROP INDEX CONCURRENTLY + CREATE INDEX CONCURRENTLY) hələ dəstəklənmir.", + concurrentPartitionedTooltip: "Bölmələrə ayrılmış ana cədvəllərdə mövcud deyil. PostgreSQL bölmələrə ayrılmış ana cədvəllərdə paralel indeks yaradılmasını rədd edir; əvəzinə alt indeksləri paralel yaradın və birləşdirin.", + invalidIndexBlocksSave: 'Yadda saxlama bloklandı: eyni adlı INVALID indeks (ləğv edilmiş paralel qurma əməliyyatından qalan) artıq mövcuddur: {indexNames}. Əvvəlcə onu silin (məsələn, DROP INDEX "schema"."name"), sonra yenidən cəhd edin.', + concurrentUnavailableTooltip: "Cədvəlin bölmə vəziyyəti yoxlanıla bilmədikdə mövcud deyil. PostgreSQL-də paralel yaratma yalnız bölmələrə ayrılmamış cədvəllər üçün təklif olunur.", + concurrentUnavailableBlocksSave: + "Paralel indeks yaradılması artıq mümkün deyil (cədvəlin bölmə vəziyyəti yoxlanıla bilmədi). Seçilmiş Paralel seçimi təmizləndi və cədvəl yenidən yoxlanılana qədər bu dəyişiklik bloklanır. Yenidən cəhd etmək üçün yeniləyin və ya digər dəyişikliklərə davam etmək üçün indeksi çıxarın.", + invalidIndexRetryHint: "Buna əvvəl ləğv edilmiş paralel yaradılmadan qalan eyniadlı INVALID indeks səbəb ola bilər. Əvvəlcə həmin indeksi silin, sonra yenidən cəhd edin.", + foreignKeyName: "Xarici açar", + referencedSchema: "İstinad edilən sxem", + referencedTable: "İstinad edilən cədvəl", + referencedColumn: "İstinad sütunu", + onDelete: "Silindikdə", + onUpdate: "Yeniləndikdə", + defaultAction: "Standart", + triggerName: "Tətikləyici", + triggerStatement: "Tətikləyici əmri", + primary: "Əsas", + drop: "Sil", + restore: "Bərpa et", + remove: "Çıxar", + moveColumnUp: "Sütunu yuxarı köçür", + copySelectedColumns: "Seçilmiş sahələri kopyala ({count})", + dropSelectedColumns: "Seçilmiş sahələri sil ({count})", + moveColumnDown: "Sütunu aşağı köçür", + dragColumn: "Sütunun sırasını dəyişmək üçün sürüklə", + localColumnOrderNotice: "Sütun sırası yerli olaraq yadda saxlanılır və verilənlər bazasındakı cədvəlin quruluşunu dəyişmir.", + yes: "Bəli", + no: "Xeyr", + emptyReadonly: "Qeydlər yoxdur", + sqlPreview: "SQL önbaxışı", + collapseSqlPreview: "SQL önbaxışını yığ", + expandSqlPreview: "SQL önbaxışını genişləndir", + noChanges: "Dəyişiklik yoxdur", + apply: "Dəyişiklikləri tətbiq et", + ready: "Hazırdır", + saved: "Cədvəlin quruluşu yeniləndi", + copySql: "SQL-i kopyala", + sqliteRebuildNotice: "SQLite verilənlərin dəyişməz anlıq surətini ehtiyat nüsxə kimi saxlayır, sonra cədvəli bir tranzaksiyada yenidən qurur və dəyişdirilmiş sütunlara məcburi CAST tətbiq edir. Təmsil oluna bilməyən dəyərlər 0/0.0 ola bilər; uğursuzluq zamanı dəyişikliklər geri qaytarılır.", + ddlEditNotice: "Redaktə edilmiş DDL yazıldığı kimi skript olaraq icra olunur — cari quruluşla fərqləri müqayisə edilmir. Mövcud cədvəl üçün onu ALTER (və ya DROP + CREATE) əmrləri kimi yenidən yazın.", + ddlEditConflictsWithStructure: "Həm DDL skripti, həm də quruluş vərəqləri redaktə edilib. Yadda saxlamazdan əvvəl onlardan birini tətbiq edin və ya dəyişikliklərini ləğv edin.", + resetDdl: "Verilənlər bazasının DDL-ni bərpa et", + extendedProperties: "Genişləndirilmiş", + autoIncrement: "Avtomatik artım", + mysqlAutoIncrementNextValue: "Növbəti avtomatik artım dəyəri", + editMysqlAutoIncrementValue: "Növbəti avtomatik artım dəyərini redaktə et (cari: {value})", + onUpdateCurrentTimestamp: "Vaxtı avtomatik yenilə", + identity: "İdentifikator", + identityGeneration: "Yaratma", + identitySeed: "Başlanğıc dəyər", + identityIncrement: "Artım", + sqlServerIdentityTypeHint: "SQL Server identifikatoru yalnız tinyint, smallint, int, bigint və kəsr hissəsində 0 rəqəm olan decimal/numeric növlərini dəstəkləyir", + }, + diagram: { + title: "Əlaqələr diaqramı", + open: "Diaqrama bax", + selectConnection: "Əlaqə seç", + selectDatabase: "Verilənlər bazası seç", + selectSchema: "Sxem seç", + allSchemas: "Bütün verilənlər bazası (bütün sxemlər)", + entireDatabase: "Bütün verilənlər bazası", + selectedSchemasCount: "{count} sxem seçilib", + selectAllSchemas: "Bütün sxemləri seç", + deselectAllSchemas: "Seçimi təmizlə", + onlyThisSchema: "Yalnız", + searchSchemas: "Sxemləri axtar...", + searchTables: "Cədvəlləri, sütunları, açarları axtar...", + refresh: "Diaqramı yenilə", + refreshConfirm: "Yeniləmə cədvəlin metaverilənlərini yenidən yükləyir, iş sahəsinin düzülüşünü və geri qaytarma tarixçəsini sıfırlayır. Yadda saxlanmış modelləşdirilmiş əlaqələr saxlanılır. Davam edilsin?", + loading: "Əlaqələr oxunur...", + loadingProgress: "Əlaqələr oxunur... {loaded}/{total}", + partialError: "Yüklənə bilməyən {count} cədvəlin metaverilənləri ötürüldü", + selectTarget: "Əlaqə və verilənlər bazası seçin", + empty: "Göstəriləcək cədvəl yoxdur", + noMatches: "Uyğun cədvəl yoxdur", + tablesCount: "{count} cədvəl", + relationshipsCount: "{count} əlaqə", + tableMode: "Cədvəl görünüşü", + engineeringMode: "Mühəndislik ER diaqramı", + modelRelationships: "Əlaqələri modelləşdir", + layers: "Qatlar", + autoMatch: "Avtomatik uyğunlaşdır", + autoLayout: "Avtomatik düz", + matchRelationshipsCount: "{count} uyğunluq", + copyJoinSql: "SQL-i kopyala", + customRelationshipsCount: "{count} modelləşdirilib", + relationshipName: "Ad", + relationshipNamePlaceholder: "İstəyə bağlı", + sourceTable: "Mənbə cədvəl", + sourceColumn: "Mənbə sütun", + targetTable: "Hədəf cədvəl", + targetColumn: "Hədəf sütun", + cardinality: "Kardinallıq", + cardinalityOneToMany: "Mənbə 1 · Hədəf N", + cardinalityManyToOne: "Mənbə N · Hədəf 1", + cardinalityOneToOne: "Mənbə 1 · Hədəf 1", + cardinalityManyToMany: "Mənbə N · Hədəf N", + cardinalityDirected: "Mənbə {source} · Hədəf {target}", + matchPickCardinality: "Kardinallığı (1:1 / 1:N / N:1 / N:N) seçdikdən sonra uyğunluğu təsdiqləyin.", + manualAddRelationship: "Əl ilə əlavə et", + confirmMatch: "Təsdiqlə", + ignoreMatch: "Nəzərə alma", + addRelationship: "Əlaqə əlavə et", + removeRelationship: "Əlaqəni çıxar", + relationshipIncomplete: "Həm mənbə, həm də hədəf sütunu seçin", + relationshipSelfInvalid: "Əlaqənin hədəfi eyni sütun ola bilməz", + relationshipExists: "Bu əlaqə artıq mövcuddur", + relationshipAdded: "Əlaqə əlavə edildi", + noJoinSql: "Kopyalanacaq əlaqə SQL-i yoxdur", + allTables: "Bütün cədvəllər", + relatedTables: "Əlaqəli cədvəllər", + moreColumns: "+ {count} sütun", + exportSvg: "SVG-yə ixrac et", + exportPng: "PNG-yə ixrac et", + exportJson: "JSON-a ixrac et", + exportDbml: "DBML-ə ixrac et", + exportMermaid: "Mermaid-ə ixrac et", + export: "İxrac et", + exportedSvg: "SVG ixrac edildi", + exportedFormat: "{format} ixrac edildi", + exportSvgFailed: "SVG ixrac edilə bilmədi: {message}", + exportFailed: "{format} ixrac edilə bilmədi: {message}", + zoomIn: "Yaxınlaşdır", + zoomOut: "Uzaqlaşdır", + fitView: "Görünüşə sığdır", + resetZoom: "Miqyası sıfırla", + undo: "Geri qaytar", + redo: "Təkrar et", + resetLayout: "Düzülüşü sıfırla", + fullscreen: "Tam ekran", + exitFullscreen: "Tam ekrandan çıx", + addLayer: "Qat əlavə et", + noLayersYet: "Hələ qat yoxdur. Yaratmaq üçün + düyməsinə klikləyin.", + layoutFree: "Sərbəst", + layoutAuto: "Avtomatik", + layerLock: "Qatı kilidlə (daxilində avtomatik düzülüşü ötür)", + layerUnlock: "Qatın kilidini aç (daxilində avtomatik düzülüşə icazə ver)", + layerLocked: "Kilidlənib", + layerUnlocked: "Kilidi açılıb", + hideLayer: "Qatı gizlət", + showLayer: "Qatı göstər", + deleteLayer: "Qatı sil", + layerHiddenCannotFocus: "Qat gizlidir — iş sahəsində ona fokuslanmaq üçün onu göstərin", + createTable: "Yeni cədvəl", + createTableNotSupported: "Bu verilənlər bazasında cədvəl yaratmaq dəstəklənmir", + create: "Yarat", + syncToDatabase: "Verilənlər bazası ilə sinxronlaşdır", + structureSyncNotSupported: "Bu verilənlər bazasında cədvəl quruluşunun sinxronlaşdırılması dəstəklənmir", + syncDraftCount: "Sinxronlaşdırılacaq {count} dəyişiklik (yaratma / dəyişdirmə / silmə)", + executeSync: "İcra et", + syncing: "Sinxronlaşdırılır…", + buildingSql: "SQL hazırlanır…", + noSqlYet: "Hələ SQL yoxdur", + copySql: "SQL-i kopyala", + tableName: "Cədvəlin adı", + tableNameRequired: "Cədvəlin adı tələb olunur", + tableNameExists: "Bu adda cədvəl artıq mövcuddur", + assignLayer: "Qat", + noLayer: "Qat yoxdur", + withDefaultIdPk: "Standart id əsas açarını daxil et", + inspectorTable: "Cədvəl", + inspectorRelationship: "Əlaqə", + fieldComment: "Şərh", + fields: "Sahələr", + tabFields: "Sahələr", + tabIndexes: "İndekslər", + addIndex: "İndeks əlavə et", + indexName: "İndeksin adı", + indexUnique: "UNIQUE", + indexColumns: "Sütunlar", + noIndexesYet: "Hələ indeks yoxdur", + indexesNotSupported: "Diaqram redaktorundan bu verilənlər bazası üçün indeks yaratmaq dəstəklənmir", + addColumnNotSupported: "Bu verilənlər bazasında sütun əlavə etmək dəstəklənmir", + dropColumnNotSupported: "Bu verilənlər bazasında sütun silmək dəstəklənmir", + dropTableNotSupported: "Diaqram redaktorundan bu verilənlər bazası üçün cədvəl silmək dəstəklənmir", + addField: "Sahə əlavə et", + deleteField: "Sahəni sil", + undoDropField: "Sahənin silinməsini geri qaytar", + noFieldsYet: "Hələ sahə yoxdur — sinxronlaşdırmaq üçün birini əlavə edin", + deleteDraftTable: "Qaralama cədvəli sil", + deleteLiveTable: "Cədvəli sil", + deleteLiveTableHint: "Növbəti sinxronlaşdırmada cədvələ DROP TABLE tətbiq etmək üçün onu işarələyir. Lazım olduqda tarixçədən geri qaytarın.", + deleteLiveTableConfirm: "Verilənlər bazası ilə sinxronlaşdırarkən bu cədvəl DROP TABLE üçün işarələnsin?", + liveTableReadOnly: "Mövcud cədvəl — quruluşu cədvəl redaktorunda redaktə edin", + liveTableAddColumnsHint: "Sütunlar əlavə edin (ALTER ADD) və ya mövcud sütunları silinmək üçün işarələyin (ALTER DROP), sonra sinxronlaşdırın. Mövcud sütunların növləri cədvəl quruluşu redaktorunda redaktə edilir.", + liveTableIndexesReadOnly: "Mövcud cədvəllərin indekslərini cədvəl quruluşu redaktorunda redaktə edin", + pendingColumnsBadge: "Gözləyən dəyişikliklər", + pendingDropColumnBadge: "Sil", + pendingDropTableBadge: "Cədvəli sil", + source: "Mənbə", + target: "Hədəf", + emptyDesignHint: "Hələ cədvəl yoxdur. Qat və cədvəllər yaradın, yoxlama panelində sahələri redaktə edin, sonra verilənlər bazası ilə sinxronlaşdırın.", + removeFromLayer: "Qatdan çıxar", + addTables: "Cədvəl əlavə et", + tabSelectExisting: "Mövcud olanı seç", + tabCreateTable: "Yeni cədvəl", + multiSelect: "Çoxlu seçim", + closeMultiSelect: "Bağla", + selectAll: "Hamısını seç", + clearSelection: "Təmizlə", + tablesInOtherLayers: "Digər qatlardakı cədvəllər", + filterTables: "Cədvəlləri süzgəcdən keçir...", + noMatchingTables: "Uyğun cədvəl yoxdur", + addSelectedCount: "Seçilmiş {count} cədvəli əlavə et", + layerNameTooLong: "Qatın adı 50 simvoldan qısa olmalıdır", + layerNameInvalid: "Qatın adında hərflər, rəqəmlər, Çin yazısı, boşluqlar, alt xətlər, defislər və nöqtələr ola bilər", + layerNameExists: "Qatın adı artıq mövcuddur", + total: "cəmi", + confirmed: "təsdiqlənib", + pending: "gözləyir", + conflicts: "ziddiyyətlər", + conflict: "Ziddiyyət", + ignored: "nəzərə alınmayıb", + confirmAll: "Hamısını təsdiqlə", + ignoreAll: "Heç birini nəzərə alma", + clearAll: "Hamısını təmizlə", + confidenceHigh: "Yüksək", + confidenceMedium: "Orta", + confidenceLow: "Aşağı", + noInferred: "Təxmin edilən əlaqə yoxdur", + editRelationship: "Redaktə et", + saveRelationship: "Yadda saxla", + deleteRelationship: "Sil", + confirmDeleteRelationship: "Bu əlaqə silinsin?", + confirmDeleteRelationshipAction: "Sil", + confirmRelationship: "Təsdiqlə", + ignoreRelationship: "Nəzərə alma", + relationshipKindFk: "Xarici açar", + relationshipKindCustom: "Fərdi", + relationshipKindInferred: "Təxmin edilən", + relationshipReadOnlyFk: "Bu əlaqə verilənlər bazasının xarici açarından yaranır və burada redaktə edilə bilməz.", + relationshipUpdated: "Əlaqə yeniləndi", + }, + etcd: { + adminPermissionRequired: "Bu etcd görünüşü root rolunu tələb edir.", + targetKeyWriteDenied: "Hədəf əlaqənin bu açara yazmaq icazəsi yoxdur.", + selectedKeysWriteDenied: "Hədəf əlaqənin seçilmiş açarlara yazmaq icazəsi yoxdur; heç bir dəyişiklik edilmədi.", + prefixPlaceholder: "Açar yolunu axtar, məsələn, /app/ və ya service", + newKey: "Yeni açar", + loadingKeys: "Açarlar yüklənir...", + empty: "Açar tapılmadı", + loadMore: "Daha çox yüklə", + selectKey: "Dəyərinə baxmaq üçün açar seçin", + loadingValue: "Dəyər yüklənir...", + notFound: "Açar tapılmadı", + edit: "Redaktə et", + editKey: "Açarı redaktə et", + delete: "Sil", + deleteTitle: "etcd açarını sil", + keyPlaceholder: "/path/to/key", + keyRequired: "Açar tələb olunur", + ttl: "TTL (saniyə)", + ttlPlaceholder: "Müsbət saniyə sayı daxil edin", + ttlInvalid: "TTL müsbət tam ədəd olmalıdır", + ttlUnavailable: "TTL-i tənzimləmək üçün etcd agentini yeniləyin və yenidən qoşulun.", + expiryMode: "Müddətin bitmə qaydası", + expiryPermanent: "Daimi", + expiryPermanentHint: "İcarə təyin etmə; açarın müddəti avtomatik bitməyəcək", + expiryTtl: "Yaşama müddəti (TTL)", + expiryTtlHint: "Təyin edilmiş müddətdən sonra bitən müvəqqəti icarə yarat", + expiryLease: "İcarə təyin et", + expiryLeaseHint: "Açarı mövcud icarə ID-sinə bağla", + leaseId: "İcarə ID-si", + leasePlaceholder: "Mövcud icarə ID-sini daxil edin", + leaseInvalid: "İcarə ID-si etibarlı müsbət 64 bitlik tam ədəd olmalıdır", + valueContent: "Dəyərin məzmunu", + keyAlreadyExists: "Bu adda açar artıq mövcuddur. Başqa ad seçin və ya bu dialoqu bağlayıb mövcud açarı redaktə edin.", + conflict: "Bu açar yükləndikdən sonra dəyişib. Onu yeniləyin və yenidən cəhd edin.", + saved: "Açar yadda saxlanıldı", + deleted: "Açar silindi", + base64Readonly: "Base64 dəyərlərini Base64 rejimində redaktə edin.", + rename: "Adını dəyiş", + clone: "Klonla", + copyKey: "Açarı kopyala", + export: "İxrac et", + exportAll: "Hamısını ixrac et", + exportSelection: "Seçilənləri ixrac et", + batchExport: "Toplu ixrac et", + exportAllJson: "Hamısını ixrac et (JSON, idxal edilə bilər)", + exportAllCsv: "Hamısını ixrac et (CSV)", + exportAllMarkdown: "Hamısını ixrac et (Markdown)", + exportSelectionJson: "Seçilənləri ixrac et (JSON)", + exportSelectionCsv: "Seçilənləri ixrac et (CSV)", + exportSelectionMarkdown: "Seçilənləri ixrac et (Markdown)", + import: "İdxal et", + sync: "Sinxronlaşdır", + history: "Tarixçə", + restore: "Bu versiyanı bərpa et", + compare: "Müqayisə et", + format: "Dəyərin formatı", + savePreview: "Dəyər dəyişikliklərini nəzərdən keçir", + globalSearch: "Qlobal axtarış", + searchPrefix: "Prefikslə məhdudlaşdır (istəyə bağlı)", + searchAll: "Açar və dəyər", + searchPlaceholder: "Açarın və ya dəyərin məzmununu axtar", + searchProgress: "{scanned} açar skan edildi, {matched} uyğunluq tapıldı", + exportResults: "Nəticələri ixrac et", + clearSearchResults: "Nəticələri təmizlə", + exported: "{count} açar ixrac edildi", + selectAllLoaded: "Hamısını seç", + deselectAll: "Təmizlə", + batchDelete: "Toplu sil", + batchDeleteTitle: "Seçilmiş etcd açarlarını sil", + batchDeleteConfirm: "Seçilmiş {count} açar silinsin? Bu əməliyyat geri qaytarıla bilməz.", + batchDeleteSuccess: "{count} açar silindi", + batchDeletePartial: "Toplu əməliyyat dayanana qədər {count} açar silindi: {error}", + importPreview: "İdxal önbaxışı", + syncPreview: "Sinxronlaşdırma önbaxışı", + targetConnection: "Hədəf etcd əlaqəsini seç", + targetReadOnly: "Hədəf əlaqə yalnız oxuma üçündür; idxal və sinxronlaşdırma əməliyyatları tətbiq edilə bilməz.", + mirrorDelete: "Hədəfdəki artıq açarları sil (güzgüləmə)", + mirrorDeleteWarning: "Güzgüləmə rejimi mənbədə olmayan hədəf açarlarını silir. Tətbiq etməzdən əvvəl hər silmə əməliyyatını nəzərdən keçirin.", + preparingPreview: "Sabit reviziya üzrə dəyişiklik önbaxışı hazırlanır...", + operation: "Əməliyyat", + reason: "Səbəb", + selectedOperations: "{count} əməliyyat seçilib", + applyOperations: "Əməliyyatları tətbiq et", + transferApplied: "{count} əməliyyat tətbiq edildi", + operationApplied: "Uğurla tətbiq edildi", + transferPartiallyApplied: "Toplu əməliyyat dayanana qədər {count} əməliyyat tətbiq edildi: {error}. Önbaxış yeniləndi; yalnız qalan seçilmiş əməliyyatları yenidən sınayın.", + transferPartialRefreshFailed: "Toplu əməliyyat dayanana qədər {count} əməliyyat tətbiq edildi: {error}. Önbaxışı yeniləmək də alınmadı: {previewError}. Yenidən cəhd etməzdən əvvəl önbaxışı bağlayıb yenidən açın.", + targetChangedDuringTransfer: "Toplu əməliyyat icra olunarkən hədəf əlaqə dəyişdi", + watch: "İzlə", + lease: "İcarə", + key: "Açar", + keyOrPrefix: "Açar və ya prefiks", + selectExistingLease: "Mövcud icarə seç", + enterLeaseId: "Və ya icarə ID-sini əl ilə daxil edin", + leasePickerHint: "Bu sessiyadan icarə seçin və ya icarə ID-sini əl ilə daxil edin.", + noLeasePickerHint: "Bu sessiyada icarə yoxdur. ID-ni əl ilə daxil edib yadda saxlayın.", + registryWarning: "Bu açar idarəetmə komponentlərinin tez-tez istifadə etdiyi /registry/ adlar fəzasındadır. Yadda saxlamazdan əvvəl sahibini və təsirini yoxlayın.", + access: { + users: "İstifadəçilər", + roles: "Rollar", + title: "Girişə nəzarət", + description: "etcd-nin öz istifadəçilərini, rollarını və açar icazələrini idarə et", + readOnly: "Yalnız oxuma üçün əlaqə", + refresh: "Yenilə", + userCount: "İstifadəçilər ({count})", + roleCount: "Rollar ({count})", + createUser: "İstifadəçi yarat", + createRole: "Rol yarat", + noUsers: "Heç bir etcd istifadəçisi yaradılmayıb", + noRoles: "Heç bir etcd rolu yaradılmayıb", + selectUser: "Rollarına və giriş məlumatı əməliyyatlarına baxmaq üçün solda istifadəçi seçin", + selectRole: "İcazələrə baxmaq və onları idarə etmək üçün solda rol seçin", + loadingUser: "İstifadəçi təfərrüatları yüklənir...", + loadingRole: "Rol təfərrüatları yüklənir...", + userRolesSummary: "{count} rol təyin edilib. Parollar müştəri proqramı tərəfindən heç vaxt oxunmur, göstərilmir və saxlanılmır.", + changePassword: "Parolu dəyiş", + deleteUser: "İstifadəçini sil", + roleAssignments: "Rol təyinatları", + roleAssignmentHint: "Rollar bu istifadəçinin oxuya və yaza biləcəyi açar aralıqlarını müəyyən edir.", + revokeAssociation: "Əlaqələndirməni ləğv et", + noAssignedRoles: "Bu istifadəçiyə rol təyin edilməyib.", + assignRole: "Rol təyin et", + assignRoleHint: "Bu istifadəçiyə hələ təyin edilməmiş rol seçin.", + selectRoleOption: "Rol seç", + noAssignableRoles: "Təyin edilə biləcək rol yoxdur", + grantRole: "Rol təyin et", + rolePermissionHint: "İcazələr bütün açarları, prefiksi və ya konkret açarı əhatə edə bilər. Prefikslər etcd-nin yarımaçıq aralıqları kimi saxlanılır.", + grantPermission: "İcazə ver", + deleteRole: "Rolu sil", + resource: "Resurs", + permission: "İcazə", + allKeys: "Bütün açarlar", + exactKey: "Konkret açar", + allKeyspace: "Bütün açar fəzası", + edit: "Redaktə et", + revoke: "Ləğv et", + noPermissions: "Bu rolun icazələri yoxdur.", + createEtcdUser: "etcd istifadəçisi yarat", + username: "İstifadəçi adı", + password: "Parol", + initialRoles: "İlkin rollar", + optional: "İstəyə bağlı", + initialRolesHint: "Seçilmiş rollar yaradıldıqdan dərhal sonra təyin ediləcək.", + selectedCount: "{count} seçilib", + noRolesForNewUser: "Hələ rol yoxdur. Əvvəlcə istifadəçi yaradıb onun təfərrüatlarından rollar təyin edə bilərsiniz.", + createAndAssignRoles: "Yarat və {count} rol təyin et", + createUserAction: "İstifadəçi yarat", + createEtcdRole: "etcd rolu yarat", + roleName: "Rolun adı", + initialPermission: "İlkin icazə", + initialPermissionHint: "Göstərildikdə, bu icazə rol yaradılarkən verilir.", + keyOrPrefixPlaceholder: "Açar və ya prefiks", + allKeysHint: "Bu, bütün açarlara giriş imkanı verir.", + createAndGrantPermission: "Yarat və icazə ver", + read: "Oxuma", + write: "Yazma", + readWrite: "Oxuma və yazma", + passwordHint: "Yeni parol yalnız bu sorğu ilə göndərilir və göndərildikdən sonra interfeysdən təmizlənir.", + newPassword: "Yeni parol", + continue: "Davam et", + editPermission: "Rolun icazəsini redaktə et", + permissionUpdateHint: "etcd Auth atomik yeniləməni dəstəkləmir. Yadda saxlama köhnə icazəni ləğv edir, sonra yenisini verir. İcazə vermək alınmasa, DBX köhnə icazəni bərpa etməyə çalışır.", + saveChanges: "Dəyişiklikləri yadda saxla", + dangerousTitle: "Təhlükəli əməliyyatı təsdiqlə", + dangerousHint: "Bu əməliyyat etcd Auth verilənlərini birbaşa dəyişir. Davam etmək üçün aşağıdakı təsdiq mətnini daxil edin.", + confirmationPlaceholder: "Təsdiq mətnini daxil edin", + confirmExecute: "Təsdiqlə və icra et", + cancel: "Ləğv et", + preflightRequired: "Bu icazə dəyişikliyi yeni təsdiq məlumatı tələb edir. Dəyişiklikləri yadda saxla seçimini seçin və yenidən təsdiqləyin.", + preflightExpired: "Təsdiqin müddəti bitib. Dəyişiklikləri yadda saxla seçimini seçin və yenidən təsdiqləyin.", + preflightMismatch: "Təsdiqin məzmunu və ya gözləyən icazə dəyişib. Yenidən cəhd etməzdən əvvəl təkrar təsdiqləyin.", + confirmationMismatch: "Təsdiq mətnləri uyğun gəlmir. Yenidən cəhd edin.", + createdUser: "{user} istifadəçisi yaradıldı", + createdUserWithRoles: "{user} istifadəçisi yaradıldı və {count} rol təyin edildi", + createdUserRolesFailed: "İstifadəçi yaradıldı, lakin ilkin rollar təyin edilə bilmədi: {error}", + createdRole: "{role} rolu yaradıldı", + createdRoleWithPermission: "{role} rolu yaradıldı və ilkin icazəsi verildi", + createdRolePermissionFailed: "Rol yaradıldı, lakin ilkin icazəsi verilə bilmədi: {error}", + deletedUser: "{user} istifadəçisi silindi", + deletedRole: "{role} rolu silindi", + passwordUpdated: "{user} üçün parol yeniləndi", + roleGranted: "{user} istifadəçisinə {role} rolu təyin edildi", + roleRevoked: "{user} istifadəçisindən {role} rolu geri alındı", + permissionGranted: "Rol icazəsi verildi", + permissionUpdated: "Rol icazəsi yeniləndi", + permissionRevoked: "Rol icazəsi ləğv edildi", + }, + admin: { + maintenance: "Texniki xidmət", + watch: "İzlə", + lease: "İcarə", + refresh: "Yenilə", + maintenanceTitle: "Tarixçə və diskə texniki xidmət", + maintenanceDescription: "Əvvəlcə istifadə olunmayan tarixçəni təmizləyin, sonra saxlama hissəsinin disk yerini boşaldıb-boşaltmayacağınıza qərar verin. Bu əməliyyatlar bir-birini əvəz etmir.", + currentRevision: "Cari reviziya {revision}", + reachableMembers: "Əlçatan üzvlər {reachable} / {total}", + compactTitle: "Tarixçəni yığcamlaşdır", + compactDescription: "Göstərilən reviziyadan əvvəlki MVCC tarixçəsini silir. Cari açar dəyərləri qalır, lakin əvvəlki tarixçənin oxunması və daha əvvəl başlayan izləmələr bərpa edilə bilməz.", + compactDiskHint: "Bu, disk yerini boşaltmır. Saxlama hissəsinin fayl ölçüsünü azaltmaq üçün yığcamlaşdırmadan sonra defraqmentasiyanı icra edin.", + compactRevision: "Tarixçənin saxlanmasının başlanğıcı (reviziya)", + compactPlaceholder: "Məsələn, {revision}", + compactRequired: "Tarixçənin saxlanılmağa başlayacağı reviziyanı daxil edin.", + compactDone: "Tarixçənin yığcamlaşdırılması tamamlandı", + compactInputHint: "Bu reviziyadan əvvəlki tarixçəni silir. Davam etməzdən əvvəl bu tarixi versiyalara artıq ehtiyac olmadığını təsdiqləyin.", + compactAction: "Tarixçəni yığcamlaşdır", + defragTitle: "Disk yerini boşalt", + defragDescription: "Defraqmentasiya bərpa edilə bilən disk yerini əməliyyat sisteminə qaytarmaq üçün hər üzvün saxlama hissəsini yenidən yazır. Cari liderdən əvvəl izləyici üzvlər ardıcıl emal olunur.", + defragWarning: "Defraqmentasiya zamanı hər üzv qısa müddətə əlçatmaz olur. Üzvlər bir-bir emal olunur və cari lider sona saxlanılır; əvvəlcə klasterin sağlam olduğunu təsdiqləyin.", + defragReachableMembers: "{count} əlçatan üzvü emal et", + leaderLast: "Lider sonda: {endpoint}", + defragAction: "{count} üzvdə disk yerini boşalt", + defragDone: "Defraqmentasiya tamamlandı", + newWatch: "Yeni izləmə", + editWatch: "İzləməni redaktə et", + watchSearch: "İzləmələri süzgəcdən keçir", + watchKeyPlaceholder: "Məsələn, /apps/payment/config", + watchScope: "İzləmə əhatəsi", + prefix: "Prefiks", + exact: "Konkret açar", + watchKeyHint: "Bu açarın yaradılma, yenilənmə və silinmə hadisələrini al.", + watchPrefixHint: "Bu prefikslə başlayan hər açar üçün hadisələri al.", + watchSessionHint: "İzləmələr yalnız bu əlaqə sessiyasında işləyir və əlaqə bağlandıqda və ya etcd səhifəsindən çıxıldıqda dayanır. Bir əlaqədə dördədək izləmə işləyə bilər.", + watchCount: "{count} yaradılıb", + runningWatchCount: "{count} işləyir", + watchList: "Yaradılmış izləmələr", + itemCount: "{count} element", + scope: "Əhatə", + status: "Vəziyyət", + actions: "Əməliyyatlar", + createWatch: "İzləmə yarat və başlat", + saveWatch: "Konfiqurasiyanı yadda saxla", + running: "İşləyir", + stopped: "Dayandırılıb", + error: "Xəta", + editWatchTitle: "İzləməni redaktə et", + stopWatch: "İzləməni dayandır", + startWatch: "İzləməni başlat", + deleteWatch: "İzləməni sil", + noMatchingWatches: "Uyğun izləmə yoxdur", + noWatches: "Hələ izləmə yoxdur.", + eventStream: "Hadisə axını", + eventCount: "{count} hadisə", + filter: "Süzgəc", + event: "Hadisə", + create: "Yarat", + update: "Dəyər dəyişikliyi", + delete: "Sil", + noFilteredEvents: "Cari süzgəcə uyğun hadisə yoxdur", + waitingEvents: "Açar dəyişiklikləri gözlənilir...", + watchNotRunning: "Bu izləmə işləmir.", + selectWatch: "Hadisə axınına baxmaq üçün solda izləmə seçin", + leaseDescription: "İcarənin müddəti bitdikdə ona bağlanmış bütün açarlar avtomatik silinir.", + grantLease: "İcarə ver", + renew: "Yenilə", + revoke: "Ləğv et", + previousPage: "Əvvəlki", + nextPage: "Növbəti", + leasePageSize: "Hər səhifədə ən çox {count} element", + grantedTtl: "{ttl} saniyə verilib", + noKnownLeases: "Bu sessiyada məlum icarə yoxdur", + loadingLease: "İcarə təfərrüatları yüklənir...", + keepalive: "Bu səhifə açıq qaldığı müddətdə hər TTL / 3 intervalında avtomatik yenilə", + attachedKeys: "Bağlanmış açarlar", + noAttachedKeys: "Bağlanmış açar yoxdur", + attachedKeysTruncated: "Bağlanmış açar nəticələri 256 qeydlə məhdudlaşdırılıb.", + selectLease: "Təfərrüatlarına baxmaq üçün icarə seçin", + leasePartial: "Cari müştəri proqramı və ya etcd serveri icarələri sadalaya bilmir. Yalnız bu sessiyada yaradılmış və ya müraciət edilmiş icarələr göstərilir; təfərrüatlar və TTL yenə serverdən alınır.", + grantNewLease: "Yeni icarə ver", + ttl: "TTL (saniyə)", + ttlPlaceholder: "Məsələn, 60", + ttlHint: "İcarə müddəti müsbət tam ədəd olmalıdır.", + customLeaseId: "Fərdi icarə ID-si", + customLeasePlaceholder: "etcd-nin təyin etməsi üçün boş saxlayın və ya 0 daxil edin", + customLeaseHint: "Onluq tam ədəd istifadə edin. etcd artıq mövcud olan ID-ni rədd edir.", + confirmationHint: "Bu klasterə texniki xidmət əməliyyatı avtomatik geri qaytarıla bilməz. Davam etməzdən əvvəl təsirlərini nəzərdən keçirin.", + confirmationCredentialHint: "Aşağıdakı təsdiq mətnini daxil edin. Təsdiq məlumatı yalnız bu əməliyyat üçün keçərlidir.", + confirmationPlaceholder: "Təsdiq mətnini daxil edin", + confirmationPrompt: "Bu əməliyyat etcd klasterinə təsir edə bilər. Təsdiq mətnini daxil edin:\n{confirmationText}", + confirmExecute: "Təsdiqlə və icra et", + cancel: "Ləğv et", + noReachableMembers: "Defraqmentasiya üçün əlçatan üzv yoxdur.", + defragStopped: "Defraqmentasiya dayandırıldı: {succeeded} uğurlu, {failed} uğursuz, {notExecuted} icra edilmədi", + defragCompleted: "Defraqmentasiya tamamlandı: {succeeded}/{total} uğurlu", + leaseRenewed: "{id} icarəsi yeniləndi", + leaseGrantCancelled: "Gözləmə dayandırıldı. etcd hələ icarə verilməsini emal edə bilər; icarənin yaradılıb-yaradılmadığını təsdiqləmək üçün yeniləyin.", + leaseCreated: "{id} icarəsi yaradıldı", + }, + dashboard: { + title: "etcd idarə paneli", + description: "Müştəri proqramının çata bildiyi son nöqtələrə əsaslanan müşahidədir; bu, kvorumun sağlamlığının qəti yoxlanışı deyil.", + autoRefreshOff: "Avtomatik yeniləmə söndürülüb", + refresh: "Yenilə", + retry: "Yenidən yoxla", + loadFailed: "etcd idarə paneli yüklənə bilmir", + agentUpgradeTitle: "Cari etcd agenti ilə idarə paneli əlçatan deyil", + agentUpgradeDescription: "Bu əlaqə hələ də klasterin vəziyyətini oxuya bilməyən köhnə agentdən istifadə edir. Açarlara baxmaq və onları redaktə etmək mümkündür.", + agentUpgradeSteps: "Drayver menecerində etcd agentini yeniləyin, sonra bu etcd əlaqəsini ayırıb yenidən qoşulun. Bitirdikdə “Yenidən yoxla” seçimini seçin.", + observedHealth: "Müşahidə olunan sağlamlıq", + reachableMembers: "Əlçatan üzvlər", + keyCount: "Açar sayı", + backendSize: "Saxlama hissəsinin ölçüsü", + fragmentation: "Təxmini parçalanma", + cluster: "klaster", + revision: "reviziya", + leader: "lider", + noAlarms: "Aktiv həyəcan siqnalı müşahidə olunmur", + prometheusMetrics: "Prometheus icra vaxtı metrikaları", + prometheusDescription: "etcd /metrics ünvanından toplanan sabit metrikalar. Tezliklər iki ardıcıl nümunədən hesablanır.", + collectedAt: "Toplanma vaxtı", + requests: "gRPC sorğu tezliyi", + requestFailureRate: "Sorğuların uğursuzluq tezliyi", + proposals: "Raft təklifləri", + proposalLag: "Təsdiqlənmiş və tətbiq edilmiş arasındakı fərq", + pending: "gözləyir", + diskLatency: "Diskə daimi yazma gecikməsi", + walFsync: "Orta WAL fsync", + backendCommit: "Saxlama hissəsində orta təsdiqləmə müddəti", + networkTraffic: "Müştəri proqramının şəbəkə trafiki", + peerTraffic: "Həmkar trafiki", + processResources: "Proses resursları", + runtime: "Go icra mühiti", + goroutines: "goroutines", + leaderChanges: "Lider dəyişikliklərinin ümumi sayı", + failedProposals: "Uğursuz təkliflərin ümumi sayı", + failedProposalRate: "Uğursuzluq tezliyi", + rateNeedsRefresh: "Canlı tezlikləri hesablamaq üçün yenidən yeniləyin", + storageQuota: "Saxlama hissəsinin kvota istifadəsi", + uptime: "Prosesin işləmə müddəti", + consensusReliability: "Konsensus və etibarlılıq", + leadership: "Liderlik", + knownPeers: "məlum həmkarlar", + proposalState: "Təkliflərin vəziyyəti", + raftFailures: "Raft uğursuzluqları", + revisionState: "MVCC reviziyası", + compactRevision: "Yığcamlaşdırma reviziyası", + requestLoad: "Sorğu yükü", + grpcMethod: "gRPC metodu", + total: "Cəmi", + rate: "Tezlik", + failures: "Uğursuzluqlar", + lag: "Geriləmə", + slowApply: "Ləng tətbiq", + putBytes: "Put baytları", + avgLatency: "Orta gecikmə", + storageDisk: "Saxlama və disk", + databaseState: "Verilənlər bazasının vəziyyəti", + inUse: "istifadədə", + openReadTransactions: "Açıq oxuma tranzaksiyaları", + backgroundTasks: "Arxa plan tapşırıqları", + watchState: "İzləmə vəziyyəti", + watchers: "İzləyicilər", + watchStreams: "İzləmə axınları", + events: "Hadisə tezliyi", + slowPending: "Ləng / gözləyən", + leaseState: "İcarənin həyat dövrü", + granted: "Verilmə tezliyi", + renewed: "Yenilənmə tezliyi", + revokedExpired: "Ləğv edilmiş / müddəti bitmiş", + averageTtl: "Orta TTL", + runtimeResources: "İcra vaxtı resursları", + memory: "Yaddaş", + processNetworkGc: "Prosesin şəbəkəsi və GC", + metricsUnavailable: "Prometheus metrikaları əlçatan deyil", + metricsUnavailableHint: "Klasterin vəziyyəti əlçatan olaraq qalır. DBX /metrics sorğusunu birbaşa cari etcd son nöqtəsinə göndərir; nəticədə alınan URL-in DBX tətbiqindən əlçatan olduğunu yoxlayın.", + endpointMember: "Son nöqtə / üzv", + role: "Rol", + version: "Versiya", + raftTermApplied: "Raft dövrü / tətbiq edilmiş", + dbSizeInUse: "Verilənlər bazasının ölçüsü / istifadədə", + latency: "Gecikmə", + status: "Vəziyyət", + learner: "öyrənən", + follower: "izləyici", + reachable: "əlçatan", + unreachable: "əlçatmaz", + loading: "Klaster müşahidəsi yüklənir…", + health: { + unknown: "naməlum", + critical: "kritik", + warning: "xəbərdarlıq", + healthy: "sağlam", + }, + }, + }, + consul, + zookeeper: { + prefixPlaceholder: "Yol prefiksi, məsələn, /app/", + newKey: "Yeni znode", + loadingKeys: "Znode-lar yüklənir...", + empty: "Znode tapılmadı", + loadMore: "Daha çox yüklə", + selectKey: "Dəyərinə baxmaq üçün znode seçin", + loadingValue: "Dəyər yüklənir...", + notFound: "Znode tapılmadı", + edit: "Redaktə et", + editKey: "Znode-u redaktə et", + delete: "Sil", + deleteTitle: "ZooKeeper znode-unu sil", + keyPlaceholder: "/path/to/znode", + keyRequired: "Znode yolu tələb olunur", + rootReadonly: "Kök znode dəyişdirilə bilməz. Alt znode yolunu daxil edin.", + saved: "Znode yadda saxlanıldı", + deleted: "Znode silindi", + base64Readonly: "Bu versiyada Base64 dəyərləri yalnız oxuma üçündür.", + utf8PreviewLossy: "Etibarsız UTF-8 baytları əvəzedici simvollar (�) kimi göstərilir. İlkin Base64 dəyəri dəyişməyib.", + utf8PreviewUnavailable: "Base64 dəyəri etibarsızdır, buna görə ilkin dəyər göstərilir.", + createMode: "Yaratma rejimi", + createModePersistent: "Daimi", + createModeEphemeral: "Müvəqqəti", + createModePersistentSequential: "Daimi ardıcıl", + createModeEphemeralSequential: "Müvəqqəti ardıcıl", + add: "Əlavə et", + value: "Dəyər", + metadata: "Düyün məlumatı", + prettyJson: "Səliqəli", + invalidJson: "Etibarsız JSON", + summaryRevision: "rev", + summaryVersion: "ver", + summaryLease: "icarə", + summarySize: "ölçü", + }, + redis: { + setDatabaseAlias: "Verilənlər bazasının ləqəbini təyin et", + databaseAliasTitle: "db{db} üçün ləqəb", + databaseAliasPlaceholder: "məsələn, sifarişlər, keş, hazırlama", + databaseAliasHint: "Ləqəb yalnız göstərmək və axtarış üçün istifadə olunur. Redis əmrləri verilənlər bazasının rəqəmli indeksindən istifadə etməyə davam edir.", + clearDatabaseAlias: "Ləqəbi təmizlə", + databaseAliasSaved: "db{db} üçün ləqəb {alias} olaraq təyin edildi", + databaseAliasCleared: "db{db} üçün ləqəb təmizləndi", + selectKey: "Dəyərinə baxmaq üçün açar seçin", + noKeys: "Açar tapılmadı", + noKeysInScanHint: "Cari skan aralığında açar tapılmadı", + pattern: "nümunə (məsələn, user:*)", + fuzzyPattern: "açarda bu mətn var...", + keyTemplateSuggestions: "Açar şablonları", + fuzzyMatch: "Qeyri-dəqiq", + fuzzyMatchTitle: "Qeyri-dəqiq uyğunluq: daxilində adi mətn olan açarları axtar", + valueSearchPlaceholder: "dəyərdə bu mətn var...", + allSearchPlaceholder: "açarda və ya dəyərdə bu mətn var...", + searchByKey: "Açar", + searchByValue: "Dəyər", + searchByAll: "Hamısı", + searchFields: "Sahələri və dəyərləri axtar", + searchMembers: "Üzvləri axtar", + searchItems: "Elementləri axtar", + keys: "{count} açar", + loadedKeys: "{loaded} / {total} açar yüklənib", + loadingKeys: "Açarlar yüklənir...", + searchingValues: "Dəyərlər axtarılır...", + searchingAll: "Açarlar və dəyərlər axtarılır...", + loadMoreKeys: "Daha çox açar yüklə", + fetchAllKeys: "Hamısını gətir", + stopFetchAll: "Dayandır", + fetchAllProgress: "{total} açardan {loaded} yüklənib", + fetchAllProgressUnknown: "{loaded} açar yüklənib", + items: "{count} element", + fields: "{count} sahə", + members: "{count} üzv", + loadedItems: "{total} elementdən {loaded} yüklənib", + loadedFields: "{total} sahədən {loaded} yüklənib", + loadedMembers: "{total} üzvdən {loaded} yüklənib", + entries: "{count} qeyd", + streamData: "Axın verilənləri", + consumerGroups: "İstehlakçı qrupları", + group: "Qrup", + consumers: "İstehlakçılar", + pending: "Gözləyir", + lastDeliveredId: "Son çatdırılmış ID", + lastDelivered: "Son çatdırılmış", + entriesRead: "Oxunmuş qeydlər", + lag: "Geriləmə", + noConsumerGroups: "İstehlakçı qrupu yoxdur", + streamGroupsLoadFailed: "İstehlakçı qrupları yüklənə bilmədi", + backToGroups: "Qruplara qayıt", + streamConsumers: "İstehlakçılar", + streamConsumersLoadFailed: "İstehlakçılar yüklənə bilmədi", + noStreamConsumers: "İstehlakçı yoxdur", + openConsumerDetails: "İstehlakçının təfərrüatlarını aç", + consumer: "İstehlakçı", + idle: "Boşda", + inactive: "Qeyri-aktiv", + pendingEntries: "Gözləyən qeydlər", + pendingEntriesLoadFailed: "Gözləyən qeydləri yükləmək alınmadı", + noPendingEntries: "Gözləyən qeyd yoxdur", + entryId: "Qeyd ID-si", + deliveries: "Çatdırılmalar", + loadMoreEntries: "Daha çox qeyd yüklə", + loadMorePending: "Daha çox gözləyən qeyd yüklə", + noExpiry: "müddətsiz", + noExpiryOnly: "Yalnız müddətsizlər", + noExpiryOnlyTitle: "Yüklənmiş nəticələrdə yalnız TTL-i olmayan açarları göstər", + noExpiryKeysEmpty: "Yüklənmiş nəticələrdə müddətsiz açar yoxdur", + ttlCountdownTitle: "Yükləmə anındakı TTL-dən yerli geri sayım", + expired: "müddəti bitib", + expiry: "Müddətin bitməsi", + expiryNone: "Müddətsiz", + expiryTtl: "TTL (saniyə)", + expiryAt: "Müddətin bitmə vaxtı (yerli)", + expiryTtlInvalid: "Saniyə ilə müsbət tam ədəd olan TTL daxil edin", + expiryDateRequired: "Etibarlı bitmə vaxtı seçin", + expiryDatePast: "Bitmə vaxtı gələcəkdə olmalıdır", + keyExpiredBeforeDisplay: "Açarın müddəti göstərilməzdən əvvəl bitdi.", + autoRefresh: "Geri sayımı avtomatik yenilə", + ttlDay: "{count}g", + ttlHour: "{count}saat", + ttlMinute: "{count}dəq", + ttlSecond: "{count}san", + columnType: "Növ", + columnKey: "Açar", + columnValue: "Dəyər", + columnSize: "Ölçü", + columnTTL: "TTL", + binaryStringReadonlyHint: "İkilik sətir dəyərləri yalnız oxuma rejimində qaçış ardıcıllıqları ilə mətn kimi göstərilir; xam baytların redaktəsi dəstəklənmir.", + largeStringPreviewHint: "Bu dəyər böyükdür. Cəmi {total} həcmindən yalnız ilk {loaded} yüklənib və önbaxış yalnız oxuma üçündür.", + largeStringPreviewHintUnknown: "Bu dəyər böyükdür. Yalnız ilk {loaded} yüklənib və önbaxış yalnız oxuma üçündür.", + largeStringPreviewActionUnavailable: "Böyük dəyərlərin önbaxışlarını kopyalamaq, dekodlaşdırmaq və ya əlavəetmə əmrləri yaratmaq üçün istifadə etmək mümkün deyil", + selectedKeys: "Seçilmiş açarlar", + selectAllLoaded: "Hamısını seç", + selectAllLoadedTitle: "Bütün açarları seç (Ctrl/Cmd+A)", + deselectAll: "Təmizlə", + selectLoadedGroupKeys: "Bu qovluqdakı {count} yüklənmiş açarı seç", + loadedMatchingKeys: "{count} yüklənmiş uyğun açar", + loadedGroupKeysPartial: "İndiyədək {count} açar yüklənib — bu qovluqda daha çox açar ola bilər", + fuzzyTreeLimit: "Baxış pəncərəsinin çevik işləməsi üçün {count} təxmini uyğunluq düz siyahı kimi göstərilir. İyerarxiyaya baxmaq üçün axtarışı dəqiqləşdirin.", + deleteGroup: "Qrupu sil", + deleteKey: "Açarı sil", + deleteGroupDetails: "{target}\n{count} açar", + deleteLoadedSearchKeysDetails: "{target}\n{count} yüklənmiş uyğun açar", + flushDb: "Cari verilənlər bazasını təmizlə", + flushDbMessage: "Bu əməliyyat cari Redis verilənlər bazasındakı bütün açarları siləcək və geri qaytarıla bilməz. Davam edilsin?", + flushDbDetails: "Hədəf: Redis db{db}\nƏhatə dairəsi: cari verilənlər bazasındakı bütün açarlar", + flushDbConfirm: "Verilənlər bazasını təmizlə", + flushDbSuccess: "Redis db{db} təmizləndi", + keyDetail: "Açarın təfərrüatları", + commandLine: "Əmr sətri", + selectKeyForDetail: "Təfərrüatlara baxmaq üçün açar seçin", + commandWelcome: "Redis əmr konsoluna xoş gəlmisiniz", + commandPlaceholder: "Redis əmri, məsələn, GET user:1", + commandPrefix: "CMD", + commandHint: "Redis əmri daxil edin, məsələn, SMEMBERS feature:flags", + executeCommand: "Əmri icra et", + commandEmpty: "Redis əmri daxil edin", + commandEmptyResult: "Nəticəni görmək üçün Redis əmri işlədin", + commandBlocked: "Bu Redis əmri təhlükəsizlik üçün bloklanıb", + createKey: "Açar yarat", + createKeyName: "Açar", + createKeyNamePlaceholder: "user:1", + createKeyType: "Növ", + createKeyTypeHelp: { + string: "İkilik məlumatları qoruyan, 512 MB-a qədər tək dəyər. Keşlənmiş dəyərlər, sayğaclar, bayraqlar və sadə seriallaşdırılmış məlumatlar üçün ən uyğundur.", + hash: "Düz sahə-dəyər xəritəsi. Ayrı-ayrı sahələr üçün səmərəlidir, lakin böyük heşi tam oxumağın mürəkkəbliyi O(N)-dir.", + list: "Sıralanmış ardıcıllıq. Başlanğıc və son əməliyyatları səmərəlidir; ortadakı təsadüfi girişin mürəkkəbliyi siyahının uzunluğuna görə xəttidir.", + set: "Unikal üzvlərin sıralanmamış toplusu. Tək üzv əməliyyatları O(1)-dir, böyük çoxluqların sadalanması və ya birləşdirilməsinin mürəkkəbliyi isə xəttidir.", + zset: "Sürüşən nöqtəli ballara görə sıralanmış unikal üzvlər. Yazma əməliyyatları O(log N)-dir; bərabər ballı üzvlər leksikoqrafik qaydada sıralanır.", + stream: "Yalnız sonuna əlavə edilən hadisə jurnalı. İstehlakçı qrupları XACK və gözləyən qeydlərin emalını tələb edir; saxlanma və yaddaşı idarə etmək üçün axını qısaldın.", + json: "Yol ilə ünvanlanan JSON sənədi. RedisJSON/Redis Stack JSON.* dəstəyi tələb edir və adətən String və ya Hash ilə müqayisədə daha çox resurs sərf edir.", + }, + createValue: "Dəyər", + createMember: "Üzv", + createField: "Sahə", + createFieldPlaceholder: "ad", + createScore: "Bal", + createKeyTtl: "TTL (saniyə)", + createKeyTtlPlaceholder: "müsbət tam saniyələr", + createKeyAddEntry: "Qeyd əlavə et", + createKeyEntryId: "Qeyd ID-si", + createKeyRawMode: "Xam giriş", + createKeyEntries: "Qeydlər", + createKeyPartialWrite: "Bəzi qeydlər yazıldı. Qalan qeydləri yazmaq üçün xətanı düzəldin və yenidən yaradın.", + createValuePlaceholder: "dəyər", + createKeySubmit: "Yarat", + createKeyNameRequired: "Açar adı daxil edin", + renameKey: "Açarın adını dəyiş", + renameKeyName: "Açarın adı", + renameKeyNameRequired: "Açar adı daxil edin", + renameKeySuccess: '"{oldName}" adı "{newName}" olaraq dəyişdirildi', + createFieldRequired: "Heş sahəsi daxil edin", + createScoreInvalid: "Etibarlı bal daxil edin", + jsonModuleNotAvailable: "Bu Redis serverində ReJSON modulu yüklənməyib", + field: "Sahə", + fieldRequired: "Sahə adı daxil edin", + valueRequired: "Dəyər daxil edin", + memberRequired: "Üzv daxil edin", + updateAppliedRefreshFailed: "Dəyişiklik yadda saxlanıldı, lakin dəyəri yeniləmək mümkün olmadı: {message}", + zsetAclCompatibilityWarning: "Dəyişiklik ACL uyğunluq rejimi ilə yadda saxlanıldı; eyni vaxtda edilən bal dəyişikliklərini yoxlamaq mümkün olmadı.", + ttlInvalid: "Saniyə ilə etibarlı TTL daxil edin (müddətsiz üçün -1)", + member: "Üzv", + memberDetail: "Üzvün təfərrüatları", + viewMember: "Tam dəyərə bax", + copyMember: "Üzvü kopyala", + copyField: "Sahəni kopyala", + copyFieldValue: "Sahəni və dəyəri kopyala", + copyOptions: "Kopyalama seçimləri", + copyKeyName: "Açarın adını kopyala", + copyKeyPath: "Açarın yolunu kopyala", + deleteGroupKeys: "Yüklənmiş açarları sil", + copied: "Kopyalandı", + copyInsertStatement: "Əlavəetmə əmrini kopyala", + copyInsertStatementBinary: "İkilik məlumatlar üçün əlavəetmə əmri yaratmaq mümkün deyil", + editMember: "Redaktə et", + jsonView: "JSON görünüşü", + jsonViewRaw: "Xam", + jsonViewDecoded: "Dekodlaşdırılmış", + rawContent: "Xam məzmun", + wordWrap: "Sətirə keçirmə", + codecNone: "Yoxdur", + codecRowLabel: "Dekodlaşdır", + viewRowLabel: "Bax", + codecBase64: "Base64", + unicodeJsonView: "Unicode JSON", + codecMismatch: "Seçilmiş kodeklə dekodlaşdırmaq mümkün deyil; ilkin məzmun göstərilir", + decompressedView: "Sıxılması açılmış", + decompressedLoading: "Sıxılma açılır…", + decompressedFailed: "Seçilmiş formatla sıxılmanı açmaq mümkün deyil", + decompressedRetryAsDeflate: "DEFLATE kimi yenidən cəhd et", + decompressedLimitExceeded: "Sıxılması açılmış nəticə 50 MiB həddini aşır", + gzipBadgeTitle: "Gzip ilə sıxılıb — sıxılması açılmış məzmuna baxmaq üçün klikləyin", + formatJson: "Formatla", + compressJson: "Sıx", + jsonFormatError: "Yanlış JSON formatı", + clearHistory: "Əmr tarixçəsini təmizlə", + historyCleared: "Redis əmr tarixçəsi təmizləndi", + blockedCommand: "{command} əmri təhlükəsizlik üçün bloklanıb. İcazə vermək üçün alətlər panelindəki qalxan işarəsini deaktiv edin.", + pubsub: "Pub/Sub", + pubsubConnected: "Əlaqə qurulub", + pubsubConnecting: "Əlaqə qurulur...", + pubsubDisconnected: "Əlaqə kəsilib", + pubsubConnect: "Əlaqə qur", + pubsubDisconnect: "Əlaqəni kəs", + pubsubChannels: "Kanallar", + pubsubChannelPlaceholder: "Kanalın adı", + pubsubSubscribe: "Abunə ol", + pubsubPatterns: "Şablonlar", + pubsubPatternPlaceholder: "Şablon (məsələn, news:*)", + pubsubPsubscribe: "PSubscribe", + pubsubMessages: "Mesajlar", + pubsubClear: "Təmizlə", + pubsubEmpty: "Hələ mesaj yoxdur. Mesajları almaq üçün kanala abunə olun.", + pubsubPublish: "Dərc et", + pubsubPublishChannel: "Kanal", + pubsubPublishMessage: "Mesaj", + pubsubSend: "Göndər", + pubsubPublishFailed: "Dərc etmək alınmadı: {error}", + pubsubWsConnectFailed: "WebSocket əlaqəsi qurulmadı: {error}", + slowlog: "Yavaş sorğular jurnalı", + slowlogCount: "Say", + slowlogQuery: "Sorğu", + slowlogNode: "Qovşaq", + slowlogSelectNode: "Qovşaq seçin", + slowlogNodeRequired: "Əvvəlcə qovşaq seçin", + slowlogEmpty: "Yavaş sorğu qeydlərini almaq üçün Sorğu düyməsinə klikləyin", + slowlogFetchFailed: "Yavaş sorğular jurnalını almaq alınmadı: {error}", + slowlogColumnId: "ID", + slowlogColumnTimestamp: "Vaxt möhürü", + slowlogColumnDuration: "Müddət (μs)", + slowlogColumnCommand: "Əmr", + slowlogColumnClientAddr: "Müştəri", + slowlogColumnClientName: "Müştərinin adı", + slowlogTotal: "{count} qeyd", + slowlogDetailTitle: "Yavaş sorğular jurnalının #{id} qeydi", + dashboard: { + totalMemory: "Ümumi yaddaş", + usedMemory: "İstifadə olunan yaddaş", + operations: "Əməliyyatlar", + hitRatio: "Uyğunluq tapılma nisbəti", + keyCount: "Açar sayı", + clients: "Müştərilər", + searchIndicators: "Göstəriciləri axtar...", + node: "Qovşaq", + off: "Söndürülüb", + refresh: "Yenilə", + noMatchingIndicators: "Uyğun göstərici yoxdur", + noDataAvailable: "Məlumat yoxdur", + sections: { + server: "Server", + clients: "Müştərilər", + memory: "Yaddaş", + persistence: "Daimi saxlama", + stats: "Statistika", + replication: "Replikasiya", + cpu: "CPU", + modules: "Modullar", + commandstats: "Əmr statistikası", + errorstats: "Xəta statistikası", + latencystats: "Gecikmə statistikası", + cluster: "Klaster", + keyspace: "Açar məkanı", + }, + }, + }, + mongo: { + documents: "{count} sənəd", + addField: "Sahə əlavə et", + deleteField: "Sahəni sil", + field: "Sahə", + value: "Dəyər", + fieldPlaceholder: "Sahənin adı", + emptyCollection: "Boş kolleksiya", + selectDocument: "Sənəd seçin", + readonlyId: "_id yalnız oxuma üçündür", + invalidJsonValue: "Bu xana etibarlı JSON dəyəri deyil", + invalidJson: "Yanlış JSON", + documentMustBeObject: "Sənədin JSON-u obyekt olmalıdır", + unsupportedJsonNumber: "JSON-da MongoDB int64 diapazonundan kənar ədəd var", + duplicateJsonKey: "Təkrarlanan JSON açarı: {field}", + duplicateField: "Təkrarlanan sahə adı: {field}", + indexExpireAfterSeconds: "Müddətin bitməsi (saniyə sonra)", + indexExpireAfterSecondsPlaceholder: "Heç vaxt", + indexExpireAfterSecondsHint: "Yalnız bir sahəli indekslər üçün. İndekslənmiş tarixdən bu müddət keçdikdə MongoDB sənədləri silir.", + indexPartialFilter: "Qismən süzgəc", + indexLegacyOptions: "Uyğunluq seçimləri", + indexLegacyOptionsHint: "Yalnız köhnə serverlərdə faydalıdır: MongoDB 4.2-dən etibarən background nəzərə alınmır, 4.4-də geoHaystack indeksləri çıxarıldıqdan sonra isə bölmə ölçüsü tətbiq edilmir.", + indexBackground: "Arxa plan", + indexBucketSize: "Bölmə ölçüsü", + indexSparse: "Seyrək", + indexHidden: "Gizli", + indexNoExpiry: "Heç vaxt", + indexOtherOptions: "Digər seçimlər", + indexPropertiesUnavailable: "MongoDB Legacy drayveri seyrəklik, bitmə müddəti, arxa plan və ya bölmə ölçüsü barədə məlumat verə bilmir. Onları görmək üçün yerli drayverlə əlaqə qurun.", + edit: "Redaktə et", + editModeFields: "Sahələr", + editModeJson: "JSON", + jsonReplaceHint: "JSON-un yadda saxlanması bütün sənədi əvəz edir. _id dəyişdirildikdə yeni sənəd yaradılır və köhnəsi silinir.", + jsonIdRequired: "Sənədin identifikatorunu dəyişdirərkən etibarlı _id tələb olunur.", + documentView: "Sənəd görünüşü", + tableView: "Cədvəl görünüşü", + filterPlaceholder: "Süzgəc...", + sortPlaceholder: "Sıralama...", + }, + meilisearch: { + ...meilisearchManagementAz, + documents: "Sənədlər", + settings: "Parametrlər", + search: "Axtarış", + keywordPlaceholder: "Sənədləri axtar...", + filter: "Süzgəc", + filterPlaceholder: 'status = "published"', + sort: "Sıralama", + sortPlaceholder: "field:asc", + sortHint: "Bir neçə sıralama ifadəsini vergüllə (,) ayırın", + sortNoAttributes: "Bu indeks üçün sıralana bilən atributlar təyin edilməyib", + sortAsc: "Artan", + sortDesc: "Azalan", + limit: "Hədd", + offset: "Sürüşmə", + resultSummary: "Təxminən {count} nəticə · {time} ms", + viewJson: "JSON", + viewTable: "Cədvəl", + viewGrid: "Tor", + empty: "Sənəd tapılmadı", + editDocument: "Sənədi redaktə et", + deleteDocument: "Sənədi sil", + deleteDocumentMessage: "Bu sənəd silinsin? Bu əməliyyat geri qaytarıla bilməz.", + documentDeleted: "Sənəd silindi", + documentSaved: "Sənəd yadda saxlanıldı", + settingsSaved: "Parametrlər yadda saxlanıldı", + invalidJson: "Yanlış JSON", + settingsJson: "Parametrlərin JSON-u", + dangerZone: "Təhlükəli sahə", + clearDocuments: "Bütün sənədləri təmizlə", + clearDocumentsConfirmMessage: "Bu əməliyyat indeksdəki bütün sənədləri çıxarır. Bu əməliyyat geri qaytarıla bilməz.", + documentsCleared: "Bütün sənədlər təmizləndi", + deleteIndex: "İndeksi sil", + deleteIndexConfirmMessage: "Bu əməliyyat indeksi və onun bütün sənədlərini həmişəlik silir.", + indexDeleted: "İndeks silindi", + isIndexing: "İndekslənir", + uid: "UID", + updatedAt: "Yenilənib", + primaryKey: "Əsas açar", + documentCountLabel: "Sənədlər", + databaseSize: "Verilənlər bazasının ölçüsü", + copyDocument: "JSON-u kopyala", + copied: "Kopyalandı", + autoRefresh: "Avtomatik yeniləmə", + hybrid: "Hibrid axtarış", + hybridEmbedder: "Vektorlaşdırıcı", + hybridSemanticRatio: "Semantik nisbət", + hybridNoEmbedders: "İndeks parametrlərində vektorlaşdırıcı təyin edilməyib; birini əl ilə daxil edin.", + showRankingScore: "Sıralama balı", + rankingScoreThreshold: "Bal həddi", + results: "Nəticələr", + exportResults: "Nəticələri ixrac et", + exportSearchUnsupported: "Meilisearch axtarış səhifələməsini məhdudlaşdırdığı üçün mətn, hibrid və ya bal həddinə görə axtarışlarda tam ixrac mümkün deyil. Süzgəcdən keçən bütün sənədləri ixrac etmək üçün həmin seçimləri təmizləyin.", + }, + dynamodb: { + tableMetadataUnavailable: "DynamoDB cədvəlinin metaməlumatları yüklənməyib. Yeniləyin və yenidən cəhd edin.", + keyRequired: "DynamoDB elementləri {key} açar atributunu tələb edir", + baseTable: "Baza cədvəli", + filter: "süzgəc", + sortKey: "sıralama açarı", + items: "{count} element", + index: "DynamoDB indeksi", + keySummary: "Bölmə açarı: {partitionKey}; sıralama açarı: {sortKey}", + none: "yoxdur", + sortKeyOnly: "DynamoDB Query yalnız cari indeksin sıralama açarına görə sıralaya bilər: {key}", + pageCursorUnavailable: "DynamoDB səhifə kursoru əlçatan deyil. İlk səhifədən yenidən yükləyin.", + repeatedCursor: "DynamoDB təkrarlanan səhifə kursoru qaytardı. İxrac dayandırıldı.", + partialProjectionReadOnly: "Bu {projection} indeksində element tam şəkildə yoxdur. Proyeksiyaya daxil edilməmiş atributların üzərinə yazılmasının qarşısını almaq üçün redaktə deaktiv edilib.", + exportLimitReached: "Yaddaş və oxuma istifadəsini məhdudlaşdırmaq üçün DynamoDB ixracı {count} elementdə dayandırıldı. Başqa sərhəd seçmək üçün ixrac sətir həddini təyin edin.", + documentDetails: "DynamoDB cədvəli: {table}\nElementin açarı: {id}", + }, + vector: { + collectionFallback: "kolleksiya", + productCollection: "{product} kolleksiyası", + browse: "Bax", + search: "Axtarış", + upsert: "Əlavə et və ya yenilə", + delete: "Sil", + reset: "Sıfırla", + refresh: "Yenilə", + run: "İşlət", + apply: "Tətbiq et", + requestEditor: "Vektor sorğusu redaktoru", + operationSuccess: "Əməliyyat tamamlandı. Kolleksiyanın önbaxışı yeniləndi.", + vectorLabel: "Vektor", + vectorDimensionRequired: "Kolleksiyanın ölçüləri hələ əlçatan deyil. Kolleksiyanın ölçüsünə uyğun vektor daxil edin.", + }, + hbase: { + prefix: "Prefiks", + exact: "Dəqiq", + rowKeyPrefix: "Sətir açarının prefiksi", + rowKey: "Sətir açarı", + rows: "sətirlər", + schema: "Sxem", + writeRow: "Sətir yaz", + loadedRows: "{count} sətir yükləndi", + resultTruncated: "Daha çox sətir var", + tableSchema: "Sxem: {table}", + rowSaved: "HBase sətri yadda saxlanıldı", + cellsObjectRequired: "cells JSON obyekti olmalıdır", + cellRequired: "Ən azı bir xana tələb olunur", + noColumnFamilies: "Bu HBase cədvəlində sütun ailələri yoxdur", + invalidJsonValue: "{label} üçün yanlış dəyər; mətndən, primitiv dəyərdən və ya base64:... formatından istifadə edin", + createTable: "Cədvəl yarat", + create: "Yarat", + tableCreated: "{table} HBase cədvəli yaradıldı", + tableDeleted: "{table} HBase cədvəli silindi", + createTableIn: "{namespace} daxilində cədvəl yarat", + tableName: "Cədvəlin adı", + columnFamiliesPlaceholder: "Vergüllə ayrılmış sütun ailələri", + deleteTable: "Cədvəli sil", + deleteTableConfirm: "{table} HBase cədvəli silinsin? Bütün sətirlər həmişəlik çıxarılacaq.", + }, + history: { + title: "Tarixçə", + search: "Tarixçədə axtar...", + conversationSearch: "Söhbətləri axtar...", + empty: "Hələ tarixçə yoxdur", + emptyConversationSearch: "Axtarışınıza uyğun söhbət yoxdur", + emptyFilteredRecent: "İcra tarixçəsinin son 200 qeydində uyğun qeyd yoxdur", + failed: "Uğursuz oldu", + success: "Uğurlu oldu", + restore: "Redaktorda bərpa et", + copy: "SQL-i kopyala", + delete: "Sil", + clear: "Tarixçəni təmizlə", + viewDetails: "Təfərrüatlara bax", + analyzeWithAi: "Süni intellektlə təhlil et", + aiAnalyzeNoConnection: "Bu tarixçə qeydinin əlaqəsi artıq mövcud olmadığı üçün onu təhlil etmək mümkün deyil.", + aiAnalysisTab: "Tarixçənin təhlili", + rollback: "Geri qaytarma", + rollbackSql: "Geri qaytarma SQL-i", + rollbackAvailable: "Mövcuddur", + rollbackUnavailable: "Geri qaytarma SQL-i yoxdur", + rollbackConfirm: "Bu tarixçə qeydi üçün yaradılmış geri qaytarma SQL-i icra edilsin?", + rollbackSuccess: "Geri qaytarma icra edildi", + rollbackFailed: "Geri qaytarma alınmadı: {message}", + confirmDelete: "Bu tarixçə qeydi silinsin?", + confirmClear: "Bütün tarixçə təmizlənsin?", + emptyFiltered: "Cari süzgəclərə uyğun tarixçə yoxdur", + loadMore: "Daha çox yüklə", + scope: { + title: "Əlaqə və verilənlər bazası", + search: "Əlaqələri və ya verilənlər bazalarını axtar...", + reset: "Sıfırla", + allConnections: "Bütün əlaqələr", + current: "Cari", + connections: "Əlaqələr", + databases: "Verilənlər bazaları", + connectionCount: "{count} əlaqə", + databaseCount: "{count} verilənlər bazası", + unknownConnection: "Naməlum əlaqə", + noOptions: "Uyğun seçim yoxdur", + }, + filters: { + all: "Hamısı", + query: "Sorğular", + data_change: "Məlumat dəyişiklikləri", + schema_change: "Sxem dəyişiklikləri", + failed: "Uğursuz oldu", + }, + dateRange: { + title: "Vaxt aralığı", + label: "İcra vaxtı:", + start: "Başlanğıc tarixi", + end: "Bitmə tarixi", + apply: "Tətbiq et", + clear: "Təmizlə", + invalid: "Başlanğıc tarixi bitmə tarixindən sonra ola bilməz", + unboundedStart: "Başlanğıc", + unboundedEnd: "Son", + }, + kinds: { + query: "Sorğu", + data_change: "Məlumat dəyişikliyi", + schema_change: "Sxem dəyişikliyi", + import: "İdxal", + transfer: "Köçürmə", + redis_command: "Redis əmri", + }, + kindShort: { + query: "SQL", + data_change: "Məlumat", + schema_change: "DDL", + import: "İdxal", + transfer: "Köçür", + redis_command: "Redis", + }, + detail: { + kind: "Növ", + operation: "Əməliyyat", + connection: "Əlaqə", + database: "Verilənlər bazası", + target: "Hədəf", + time: "Vaxt", + duration: "Müddət", + affectedRows: "Təsirlənmiş sətirlər", + rollback: "Geri qaytarma", + status: "Vəziyyət", + error: "Xəta", + }, + }, + dangerDialog: { + title: "Təhlükəli əməliyyat", + message: "Bu SQL əmri məlumatları geri qaytarılmadan dəyişdirə və ya silə bilər. Onu icra etmək istədiyinizə əminsiniz?", + redisCommandMessage: "Bu Redis əmri məlumatları dəyişdirə bilər və avtomatik geri qaytarıla bilməz. Davam edilsin?", + suppressFuturePrompts: "Təhlükəli SQL üçün bir daha soruşma", + wrapLines: "Sətirə keçirməni aç/bağla", + copyFullText: "Tam mətni kopyala", + previewTruncated: "Önbaxış qısaldılıb: {lines} sətirdə {characters} simvol buraxılıb. Kopyalama yenə də tam mətni əhatə edir.", + deleteMessage: "Bu silmə əməliyyatı geri qaytarılmaya bilər. Davam edilsin?", + deleteConfirm: "Silməni təsdiqlə", + deleteRowMessage: "Bu sətir silinmək üçün işarələnəcək və yadda saxlandıqdan sonra verilənlər bazasından çıxarılacaq. Davam edilsin?", + deleteRowsMessage: "Bu {count} sətir silinmək üçün işarələnəcək və yadda saxlandıqdan sonra verilənlər bazasından çıxarılacaq. Davam edilsin?", + deleteRowDetails: "Cədvəl: {table}", + deleteRowDetailsNoTable: "Cari nəticə sətri", + redisKeyDetails: "Redis açarı: {key}", + redisHashFieldDetails: "Redis heşi: {key}\nSahə: {field}", + redisListItemDetails: "Redis siyahısı: {key}\nİndeks: {index}", + redisSetMemberDetails: "Redis çoxluğu: {key}\nÜzv: {member}", + mongoDocumentDetails: "MongoDB kolleksiyası: {collection}\nSənədin _id-si: {id}", + mongoFieldDetails: "Sahə: {field}", + mongoArrayItemDetails: "Massiv elementinin indeksi: {index}", + cancel: "Ləğv et", + cancelRunning: "Sorğunu ləğv et", + confirm: "İcra et", + }, + production: { + title: "İstismar mühiti", + connection: "İstismar əlaqəsi", + enable: "İstismar mühitinin qorunmasını aktiv et", + disabledDescription: "Bütün verilənlər bazalarını və ya seçilmiş verilənlər bazalarını qorumaq üçün bunu aktiv edin.", + namespaceDisabledDescription: "Bütün ad məkanlarını və ya seçilmiş ad məkanlarını qorumaq üçün bunu aktiv edin.", + scope: "Qorunmanın əhatə dairəsi", + allDatabases: "Bütün verilənlər bazaları", + selectedDatabases: "Seçilmiş verilənlər bazaları", + allNamespaces: "Bütün ad məkanları", + selectedNamespaces: "Seçilmiş ad məkanları", + singleDatabaseScopeHint: "Bu verilənlər bazası növü yalnız əlaqə səviyyəsində istismar mühitinin qorunmasını dəstəkləyir.", + databases: "İstismar verilənlər bazaları", + namespaces: "İstismar ad məkanları", + connectionDescription: "Bu əlaqədəki hər verilənlər bazası istismar mühitinin qorunmasından istifadə edir.", + namespaceConnectionDescription: "Bu əlaqədəki hər ad məkanı istismar mühitinin qorunmasından istifadə edir.", + databaseDescription: "İstismar mühitinin qorunmasına ehtiyacı olan verilənlər bazalarını seçin. İlkin seçim bütün verilənlər bazalarını əhatə edir.", + namespaceDescription: "İstismar mühitinin qorunmasına ehtiyacı olan ad məkanlarını seçin. İlkin seçim bütün ad məkanlarını əhatə edir.", + selectDatabases: "İstismar verilənlər bazalarını seçin", + selectNamespaces: "İstismar ad məkanlarını seçin", + noDatabasesSelected: "Verilənlər bazası seçilməyib", + databasesConfiguredCount: "{count} seçilib", + databasesSelectedCount: "{selected}/{total} seçilib", + databasePickerTitle: "İstismar verilənlər bazalarını seçin", + databasePickerDescription: '"{connection}" əlaqəsində istehsal mühiti üçün qoruma tədbirləri tələb edən verilənlər bazalarını seçin.', + databaseSearchPlaceholder: "Verilənlər bazalarını axtar...", + databaseSelectionRequired: "Ən azı bir verilənlər bazası seçin.", + databaseLoadFailed: "Verilənlər bazalarını yükləmək mümkün olmadı: {message}", + noDatabasesAvailable: "Seçmək üçün verilənlər bazası yoxdur.", + namespacePickerTitle: "İstismar ad məkanlarını seçin", + namespacePickerDescription: '"{connection}" əlaqəsində istehsal mühiti üçün qoruma tədbirləri tələb edən ad fəzalarını seçin.', + namespaceSearchPlaceholder: "Ad məkanlarını axtar...", + namespaceSelectionRequired: "Ən azı bir ad məkanı seçin.", + namespaceLoadFailed: "Ad məkanlarını yükləmək mümkün olmadı: {message}", + noNamespacesAvailable: "Seçmək üçün ad məkanı yoxdur.", + retry: "Yenidən cəhd et", + confirmTitle: "İstismar mühitində yazmanı təsdiqlə", + confirmMessage: "Bu əməliyyat istismar verilənlər bazasını dəyişdirir və açıq təsdiq tələb edir.", + confirmDetails: "Əlaqə: {connection}\nVerilənlər bazası: {database}\nMənbə: {source}", + confirmAction: "İstismar mühitində icra et", + sourceSqlEditor: "SQL redaktoru", + sourceMultiDbSql: "Bir neçə verilənlər bazasında SQL icrası", + sourceDataGrid: "Məlumat redaktoru", + sourceStructure: "Struktur redaktoru", + sourceSqlFile: "SQL faylının icrası", + sourceObjectBrowser: "Obyektlərə baxış", + sourceSchemaDiff: "Sxem fərqi", + sourceDataCompare: "Məlumatların müqayisəsi", + sourceExtension: "Genişlənmə meneceri", + sourceSidebar: "Obyekt ağacı", + sourceMq: "Mesaj növbəsi", + sourceObjectSource: "Obyektin mənbə redaktoru", + sourceDataGenerate: "Məlumat generatoru", + sourceQueryHistory: "Sorğu tarixçəsinin geri qaytarılması", + sourceAdmin: "Verilənlər bazasının idarə edilməsi", + aiReviewRequired: "İstismar mühiti üçün SQL redaktora əlavə edildi. Onu nəzərdən keçirin və təsdiqləmək üçün əl ilə işlədin.", + }, + readOnlyUnlock: { + confirmTitle: "Yazma kilidini aç", + confirmMessage: "Bu əlaqə yalnız oxuma üçündür. Qısa müddətə kilidini açmadığınız halda yazma bloklanmış qalır. Yadda saxlanmış yalnız oxuma parametri söndürülməyəcək.", + confirmDetails: "Əlaqə: {connection}\nMənbə: {source}\nSeçilmiş müddət ərzində yazmağa icazə veriləcək, sonra yalnız oxuma rejimi avtomatik bərpa olunacaq.", + confirmAction: "Yazma kilidini aç", + durationLabel: "Yazmağa icazə müddəti", + durationOneMinute: "1 dəqiqə", + durationFiveMinutes: "5 dəqiqə", + remaining: "{time} qalıb", + unlockedBadge: "Yazma kilidi açılıb", + lockNow: "Yazmanı indi kilidlə", + unlockAction: "Yazma kilidini aç…", + sourceImport: "Cədvəl idxalı", + sourceTransfer: "Məlumatların köçürülməsi", + sourceSqlFile: "SQL faylının icrası", + sourceStatus: "Yalnız oxuma rejiminin idarəsi", + sourceDataEditor: "Məlumat redaktoru", + }, + sqlParameters: { + title: "SQL parametrləri", + description: "SQL şablonunun yer tutucuları üçün dəyərləri doldurun. DBX SQL-i icra etməzdən əvvəl onları əvəz edir.", + name: "Parametr", + syntax: "Sintaksis", + type: "Növ", + value: "Dəyər", + valuePlaceholder: "Dəyər daxil edin", + collectionValuePlaceholder: "JSON massivi və ya vergüllə ayrılmış dəyərlər daxil edin", + preview: "SQL önbaxışı", + execute: "İcra et", + clearValues: "Dəyərləri təmizlə", + useRawForAll: "Hamısı üçün xam SQL-dən istifadə et", + ignore: "Nəzərə alma", + kind: { + string: "Sətir", + number: "Ədəd", + boolean: "Məntiqi", + null: "NULL", + raw: "Xam SQL", + }, + }, + transfer: { + title: "Məlumatların köçürülməsi", + content: "Köçürülən məzmun", + contentStructureAndData: "Struktur və məlumatlar", + contentStructureOnly: "Yalnız struktur", + contentDataOnly: "Yalnız məlumatlar", + contentStructureOnlyHint: "Məlumatlar olmadan yalnız cədvəl və obyekt strukturlarını yarat", + contentDataOnlyHint: "Məlumatları yalnız mövcud hədəf cədvəllərə kopyala", + objects: "Obyektlər", + searchObjects: "Obyekt adlarını axtar...", + noObjects: "Obyekt yoxdur", + objectTypeTable: "Cədvəllər", + objectTypeView: "Görünüşlər", + objectTypeMaterializedView: "Materiallaşdırılmış görünüşlər", + objectTypeProcedure: "Prosedurlar", + objectTypeFunction: "Funksiyalar", + objectTypeTrigger: "Triqerlər", + objectTypeSequence: "Ardıcıllıqlar", + objectTypeEvent: "Hadisələr", + objectDataOnlyDisabled: "Yalnız məlumat rejimində cədvəl olmayan obyektlər köçürülmür", + objectCrossFamilyDisabled: "Verilənlər bazaları arasında köçürmə yalnız ardıcıllıqları dəstəkləyir (sadə DDL; görünüş sorğularının gövdələri çevrilə bilməz)", + crossFamilyViewHint: "Verilənlər bazaları arasında görünüşün köçürülməsi: görünüşün asılı olduğu cədvəlləri də seçin və ya onların hədəf verilənlər bazasında artıq mövcud olduğuna əmin olun", + objectUnsupportedDisabled: "Bu verilənlər bazası bu obyekt növünün köçürülməsini dəstəkləmir", + skippedExistingObjects: "{count} mövcud obyekt ötürüldü", + targetTableHandling: "Hədəf cədvəlin emalı", + source: "Mənbə", + target: "Hədəf", + sourceConnection: "Mənbə əlaqəsi", + sourceCatalog: "Mənbə kataloqu", + targetCatalog: "Hədəf kataloqu", + selectCatalog: "Kataloq seçin...", + searchCatalog: "Kataloqu axtar...", + sourceDatabase: "Mənbə verilənlər bazası", + sourceSchema: "Mənbə sxemi", + swap: "Mənbə və hədəfin yerini dəyiş", + targetConnection: "Hədəf əlaqəsi", + targetDatabase: "Hədəf verilənlər bazası", + targetSchema: "Hədəf sxemi", + tables: "Cədvəllər", + selectAll: "Hamısını seç", + deselectAll: "Bütün seçimləri ləğv et", + createTable: "Mövcud deyilsə, cədvəl yarat", + transferMode: "Köçürmə rejimi", + modeAppend: "Əlavə et (INSERT)", + modeOverwrite: "Üzərinə yaz (TRUNCATE + INSERT)", + modeUpsert: "Əlavə et və ya yenilə (PK üzrə INSERT və ya UPDATE)", + targetTableNameCase: "Hədəf cədvəl adının hərf registri", + quoteTargetColumnNames: "Hədəf sütun adlarını dırnağa al", + tableNameCasePreserve: "Qoru", + tableNameCaseLower: "Kiçik hərflər", + tableNameCaseUpper: "Böyük hərflər", + batchSize: "Toplu ölçüsü", + modeRebuild: "Struktur və məlumatları yenidən qur (RENAME + CREATE + INSERT)", + modeKeepExisting: "Mövcud cədvəlləri saxla", + modeRebuildStructure: "Strukturu yenidən qur (RENAME + CREATE)", + rebuildSummary: "{count} cədvəli yenidən qur: əvvəlcə mövcud hədəf cədvəllərin adları dəyişdirilərək ehtiyat nüsxələrə çevrilir, sonra mənbə strukturundan yenidən qurulur və doldurulur; bütün addımlar uğurla tamamlandıqdan sonra ehtiyat nüsxələr çıxarılır.", + rebuildDanger: "Yenidən qurma seçilmiş hədəf cədvəlləri, onların mövcud sətirlərini və yalnız hədəfdə olan metaməlumatları əvəz edir. Faktiki hədəfləri, ehtiyat nüsxə adlarını və SQL-i nəzərdən keçirin. Ehtiyat nüsxələr təmizləndikdən sonra bərpa üçün istifadə edilə bilməz.", + rebuildDataOnlyDisabled: "Yalnız məlumat köçürmələri üçün yenidən qurma əlçatan deyil. Struktur və məlumatları və ya yalnız strukturu seçin.", + rebuildUnsupportedDisabled: "Seçilmiş hədəf mühərriki hədəf cədvəllərin yenidən qurulmasını dəstəkləmir.", + rebuildPreviewUnavailable: "Server tərəfi yenidən qurma planını təqdim etmədi. Köçürmə başlamayıb; yenidən qurmanı dəstəkləyən server tərəfi ilə önbaxışı yeniləyin.", + previewFailed: "Köçürməni hazırlamaq mümkün olmadı: {message}", + start: "Köçürməni başlat", + startConfirmTitle: "Köçürməni təsdiqlə", + startConfirmMessage: "Seçilmiş {count} obyekti {source} mənbəyindən {target} hədəfinə köçür. İndi başladılsın?", + cancel: "Ləğv et", + progress: "Köçürülür...", + transferring: "{table} köçürülür...", + completed: "Köçürmə tamamlandı", + completedWithErrors: "{count} uğursuz cədvəllə tamamlandı | {count} uğursuz cədvəllə tamamlandı", + failed: "Köçürmə alınmadı", + cancelled: "Köçürmə ləğv edildi", + rowsTransferred: "{count} sətir köçürüldü", + tableProgress: "{current} / {total} cədvəl", + noSqlConnections: "SQL əlaqəsi yoxdur", + selectTables: "Köçürüləcək cədvəlləri seçin", + searchTables: "Cədvəlləri axtar...", + noTables: "Cədvəl yoxdur", + selectSourceFirst: "Əvvəlcə mənbə əlaqəsini və verilənlər bazasını seçin", + tableError: "{table} cədvəlində əməliyyat alınmadı: {error}", + overallProgress: "Ümumi gedişat", + dataTransfer: "Məlumatların köçürülməsi", + runInBackground: "Arxa planda işlət", + newTask: "Yeni köçürmə", + editConfig: "Konfiqurasiyanı redaktə et", + retry: "Yenidən cəhd et", + targetTableBusy: "Başqa köçürmə artıq hədəf cədvəllərə yazır: {tables}", + ownershipTitle: "Sahibliyi təsdiqlə", + ownershipMessage: "Hədəf verilənlər bazasında bu sahib istifadəçilər və ya rollar yoxdur: {owners}. İlkin sahibliyin tətbiqi uğursuz ola bilər.", + ownershipSkipDetails: "Ötürmə obyekt sahibliyini dəyişən əmrləri işlətməyəcək. Cədvəl məlumatlarının və digər strukturların sinxronlaşdırılması davam edəcək.", + ownershipTargetOwner: "Təsdiq sahibləri olmayan obyektləri hədəf əlaqənin istifadəçisinə yenidən təyin edəcək: {owner}.", + ownershipSkip: "Ötür", + ownershipConfirm: "Təsdiqlə", + selectConnection: "Əlaqə seçin", + selectDatabase: "Verilənlər bazası seçin", + selectSchema: "Sxem seçin", + searchConnection: "Əlaqələri axtar...", + searchDatabase: "Verilənlər bazalarını axtar...", + searchSchema: "Sxemləri axtar...", + saveConfig: "Konfiqurasiyanı yadda saxla", + saveAsNewTask: "Tapşırıq kimi yadda saxla", + taskSaved: "Tapşırıq yadda saxlanıldı", + unsavedTitle: "Yadda saxlanılmamış dəyişikliklər", + unsavedMessage: "Cari konfiqurasiyada yadda saxlanılmamış dəyişikliklər var. Onlar atılsın?", + unsavedDiscard: "Dəyişiklikləri at", + tasks: { + title: "Köçürmə tapşırıqları", + searchTasks: "Tapşırıqları axtar...", + newTask: "Yeni tapşırıq", + newFolder: "Yeni qovluq", + newSubfolder: "Yeni alt qovluq", + rename: "Adını dəyiş", + duplicate: "Dublikat yarat", + delete: "Sil", + open: "Aç", + moveToFolder: "Qovluğa köçür", + ungrouped: "Qruplaşdırılmamış", + empty: "Yadda saxlanılmış köçürmə tapşırığı yoxdur", + newFolderDefault: "Yeni qovluq", + newTaskDefault: "Yeni köçürmə tapşırığı", + deleteFolderTitle: "Qovluğu sil", + deleteFolderConfirm: "“{name}” və onun daxilindəki bütün köçürmə tapşırıqları silinsin?", + deleteTaskTitle: "Tapşırığı sil", + deleteTaskConfirm: "“{name}” köçürmə tapşırığı silinsin?", + nameConflict: "“{name}” artıq bu yerdə mövcuddur", + moveFailed: "Köçürmək alınmadı: {message}", + saveFailed: "Yadda saxlamaq alınmadı: {message}", + deleteFailed: "Silmək alınmadı: {message}", + }, + }, + tableImport: { + title: "Cədvəl məlumatlarını idxal et", + target: "Hədəf cədvəl", + selectFile: "Fayl seç", + changeFile: "Faylı dəyiş", + noFileSelected: "Fayl seçilməyib", + sourceFile: "Mənbə faylı", + sourceFormat: "Mənbə formatı", + targetMode: "Hədəf", + existingTable: "Mövcud cədvəl", + createTable: "Cədvəl yarat", + createTableHint: "Sütunları fayldan müəyyən et", + targetTableName: "Cədvəlin adı", + noExistingTarget: "Cədvəl seçilməyib", + searchExistingTables: "Cədvəlləri axtar...", + loadingTables: "Cədvəllər yüklənir...", + noTables: "Mövcud cədvəl yoxdur", + targetColumnsTimeout: "Hədəf cədvəlin sütunlarının yüklənməsi üçün vaxt bitdi. Əlaqəni yoxlayıb yenidən cəhd edin.", + retry: "Yenidən cəhd et", + stepSource: "Mənbə", + stepOptions: "Seçimlər", + stepMapping: "Uyğunlaşdırma", + stepReview: "Nəzərdən keçir", + stepExecution: "İşlət", + formatCsv: "CSV", + formatCsvDescription: "Vergüllə ayrılmış mətn", + formatTsv: "TSV", + formatTsvDescription: "Tabulyasiya ilə ayrılmış mətn", + formatDelimited: "Ayırıcı ilə ayrılmış", + formatDelimitedDescription: "Xüsusi mətn ayırıcısı", + formatJson: "JSON", + formatJsonDescription: "Obyekt və ya massiv sətirləri", + formatExcel: "Excel", + formatExcelDescription: "XLS, XLSX, XLSM", + formatSql: "SQL", + formatSqlDescription: "SQL skriptlərində INSERT əmrləri", + previewRows: "Sətirlərin önbaxışı", + delimiter: "Ayırıcı", + encoding: "Kodlaşdırma", + encodingAuto: "Avtomatik müəyyən et", + encodingUtf8: "UTF-8", + encodingGbk: "GBK / GB18030", + encodingUtf16Le: "UTF-16 LE", + encodingUtf16Be: "UTF-16 BE", + encodingDetected: "Müəyyən edildi: {encoding}", + hasHeader: "İlk sətir başlıqdır", + titleRow: "Başlıq sətri (yoxdursa 0)", + dataStartRow: "Məlumatların başlanğıc sətri", + lastDataRow: "Son məlumat sətri (sona qədər üçün 0)", + trimValues: "Dəyərlərin əvvəlindəki və sonundakı boşluqları sil", + emptyStringAsNull: "Boş sətri NULL kimi qəbul et", + jsonShape: "JSON sətirləri", + jsonShapeAuto: "Avtomatik müəyyən et", + jsonShapeObjects: "Obyektlər", + jsonShapeArrays: "Massivlər", + sheet: "Vərəq", + firstSheet: "İlk vərəq", + loadPreview: "Önbaxışı yüklə", + reloadPreview: "Önbaxışı yenidən yüklə", + previewReady: "{rows} sətir, {columns} sütun", + previewReadyPartial: "{rows} sətir, {columns} sütun üçün önbaxış göstərildi; ümumi say idxal zamanı təsdiqlənəcək", + previewPartial: "{rows} sətir üçün önbaxış göstərildi", + rowsImported: "sətir idxal edildi", + file: "Fayl", + rows: "Sətirlər", + mapped: "Uyğunlaşdırılıb", + mapping: "Sütunların uyğunlaşdırılması", + sourceColumn: "Mənbə", + targetColumn: "Hədəf", + targetDataType: "Növ", + createColumns: "Yaradılacaq sütunlar", + skipColumn: "Keç", + preview: "Önbaxış", + mode: "İdxal rejimi", + append: "Məlumatları əlavə et", + truncate: "Cədvəli boşalt, sonra idxal et", + progress: "Gedişat", + start: "İdxala başla", + success: "{count} sətir idxal edildi", + elapsed: "Keçən vaxt: {duration}", + back: "Geri", + next: "Növbəti", + truncateWarning: "İdxal başlamazdan əvvəl hədəf cədvəldəki mövcud sətirlər silinəcək.", + requiredUnmapped: "Məcburi hədəf sütunlar uyğunlaşdırılmayıb: {columns}", + status_idle: "İdxala hazırdır", + status_running: "Məlumatlar idxal edilir", + phase_preparing: "İdxal hazırlanır", + phase_detectingEncoding: "Mətnin kodlaşdırması müəyyən edilir", + phase_reading: "Mənbə faylı oxunur", + phase_writing: "Məlumatlar yazılır", + phase_finalizing: "İdxal yekunlaşdırılır", + status_done: "İdxal tamamlandı", + status_error: "İdxal uğursuz oldu", + status_cancelled: "İdxal ləğv edildi", + }, + dataGenerate: { + title: "Məlumatların yaradılması", + target: "Hədəf", + rowCount: "Yaradılacaq sətirlər", + columns: "Sütunlar", + column: "Sütun", + type: "Növ", + generator: "Generator", + columnProps: "Sütunun xüsusiyyətləri", + databaseObjects: "Verilənlər bazası obyektləri", + selectTable: "Soldan cədvəl seçin", + saveProfile: "Profili yadda saxla", + loadProfile: "Profili yüklə", + options: "Seçimlər", + generateOrder: "Yaradılma ardıcıllığı", + nextStep: "Növbəti", + insertSuccess: "{count} sətir əlavə edildi", + noData: "Hələ məlumat yoxdur, əvvəlcə yaratma qaydalarını təyin edin", + noResult: "İcra nəticələri yoxdur", + regenerate: "Yenidən yarat", + first50Rows: "İlk 50 sətir göstərilir, cəmi {count} sətir", + resultTitle: "İcra nəticələri", + successLabel: "{count} uğurlu", + failLabel: "{count} uğursuz", + totalLabel: "/ {count} qeyd", + copySampleSql: "Nümunə SQL-i kopyala", + prevStep: "Əvvəlki", + startInsert: "Əlavə etməyə başla", + confirm: "Təsdiqlə", + back: "Geri", + reset: "Sıfırla", + selectGenerator: "Generator seç...", + selectGeneratorHint: "Generator seçin", + preview: "Önbaxış", + noValue: "(yoxdur)", + startDate: "Başlanğıc tarixi", + endDate: "Bitmə tarixi", + allDay: "Bütün gün", + startTime: "Başlanğıc vaxtı", + endTime: "Bitmə vaxtı", + weekday: "Həftənin günü", + all: "Hamısı", + weekdayOnly: "Həftəiçi günlər", + custom: "Xüsusi", + values: "Dəyərlər", + min: "Minimum", + max: "Maksimum", + increment: "Artım", + cycle: "Hədd aşıldıqda əvvələ qayıt", + includeDefault: "DEFAULT dəyərini daxil et", + includeNull: "NULL dəyərini daxil et", + unique: "Unikal et", + uniqueExhausted: "{attempts} cəhd ərzində {table}.{column} üçün fərqli dəyər yaradıla bilmədi. Mövcud dəyər aralığını genişləndirin və ya daha az sətir yaradın.", + disableLinks: "Sütunlar arasındakı məlumat əlaqələrini deaktiv et", + imageMode: "Rejim", + generate: "Yarat", + fromFolder: "Qovluqdan", + imageWidth: "Şəklin eni", + imageHeight: "Şəklin hündürlüyü", + imageFormat: "Şəkil formatı", + folderPath: "Qovluğun yolu", + filterByExtension: "Uzantılara görə süzgəcdən keçir", + errorContinue: "Xəta olduqda davam et", + truncateBefore: "Yaratmadan əvvəl cədvəli boşalt", + useTransaction: "Tranzaksiyadan istifadə et", + extendedInsert: "Genişləndirilmiş INSERT-dən istifadə et", + ok: "Oldu", + noTablesSelected: "Cədvəllər seçilməyib", + orderHint: "Ardıcıllığı dəyişmək üçün ox düymələrindən istifadə edin", + language: "Dil", + regionLabel: "Bölgə", + formatLabel: "Format", + formatType: "Format növü", + typeLabel: "Növ", + loading: "Yüklənir...", + regex: "Müntəzəm ifadə", + rawPattern: "Xam şablon rejimi", + notSet: "(təyin edilməyib)", + noMatch: "(uyğunluq yoxdur)", + invalidRegex: "(yanlış müntəzəm ifadə)", + noDomain: "(domen yoxdur)", + schema: "Sxem", + tableLabel: "Cədvəl", + columnLabel: "Sütun", + genMode: "Yaratma rejimi", + dateType: "Tarix növü", + yearOffsetRange: "İl aralığı (cari ildən fərq)", + numberType: "Ədəd növü", + integer: "Tam ədəd", + decimal: "Onluq ədəd", + decimalPlaces: "Vergüldən sonrakı rəqəmlərin sayı", + uuidFormat: "UUID formatı", + uuidWithHyphens: "Defislərlə", + uuidNoHyphens: "Defissiz", + includeSeparators: "Ayırıcıları daxil et", + phoneDomestic: "Ölkədaxili", + phoneInternational: "Beynəlxalq", + charCount: "Simvollar", + start: "Başla", + valueList: "Dəyərlərin siyahısı", + domainList: "Domenlərin siyahısı", + subdomains: "Alt domenlər", + tlds: "Yuxarı səviyyəli domenlər", + extensionType: "Uzantı növü", + extensionList: "Uzantıların siyahısı:", + availableExtensions: "Mövcud uzantılar:", + includeExtension: "Uzantını daxil et", + includeFileName: "Faylın adını daxil et", + pathType: "Yol növü", + ipType: "IP ünvanının növü", + nameFormat: "Ad formatı", + transformTo: "Dəyərləri bu formaya çevir", + generateOptions: "Yaratma seçimləri", + previewRowCount: "{count} sətir", + useKeywords: "Açar sözlərdən yarat", + weekdayShort: { + sun: "B.", + mon: "B.e.", + tue: "Ç.a.", + wed: "Ç.", + thu: "C.a.", + fri: "C.", + sat: "Ş.", + }, + countries: { + us: "Amerika Birləşmiş Ştatları", + uk: "Birləşmiş Krallıq", + cn: "Çin", + jp: "Yaponiya", + other: "Digər", + cnEnglish: "Çin (ingiliscə)", + jpEnglish: "Yaponiya (ingiliscə)", + }, + cityLanguages: { + native: "Ana dili", + english: "İngilis dili", + }, + addressTypes: { + line1: "Ünvan sətri 1", + line2: "Ünvan sətri 2", + full: "Tam ünvan", + }, + nameFormats: { + full: "Tam ad", + last: "Yalnız soyad", + first: "Yalnız ad", + }, + regionFormats: { + name: "Ad", + code: "Kod", + codeName: "Kod + ad", + }, + transforms: { + none: "Olduğu kimi", + upper: "BÖYÜK HƏRFLƏR", + lower: "kiçik hərflər", + title: "Hər sözün ilk hərfi böyük", + }, + extensionCategories: { + image: "Şəkil", + document: "Sənəd", + spreadsheet: "Elektron cədvəl", + presentation: "Təqdimat", + audio: "Səs", + video: "Video", + code: "Kod", + archive: "Arxiv", + web: "Veb", + database: "Verilənlər bazası", + }, + placeholders: { + enumValues: "Hər sətirdə bir dəyər\nbirinci\nikinci\nüçüncü", + subdomains: "Hər sətirdə bir alt domen\nauth.\nwww.\napi.", + tlds: "Hər sətirdə bir TLD\n.com\n.cn\n.io", + fileExtensions: "Hər sətirdə bir uzantı\npng\njpg\ntxt", + paymentMethods: "Hər sətirdə bir ödəniş üsulu\nKredit kartı\nPayPal\nApple Pay", + keywords: "Hər sətirdə bir açar söz\nAlma\nAlbalı\nPortağal", + weightUnits: "Hər sətirdə bir vahid\ng\nkg\nlb", + }, + genModes: { + random: "Təsadüfi", + unique: "Təkrarlanmadan", + repeat: "Hər dəyəri təkrarla", + }, + gen: { + general: "Ümumi", + personal: "Şəxsi", + payment: "Ödəniş", + business: "Biznes", + location: "Məkan", + product: "Məhsul", + computer: "Kompüter", + number: "Ədəd", + datetime: "Tarix və vaxt", + date: "Tarix", + time: "Vaxt", + sequence: "Ardıcıllıq", + enum: "Sadalanan növ", + text: "Mətn", + image: "Şəkil və ya ikilik məlumat", + foreign_key: "Xarici açar", + uuid: "UUID", + regex: "Müntəzəm ifadə", + full_name: "Tam ad", + gender: "Cins", + title: "Başlıq", + marital_status: "Ailə vəziyyəti", + phone: "Telefon", + email: "E-poçt", + job_title: "Vəzifə", + social_id: "Sosial ID", + payment_method: "Ödəniş üsulu", + credit_card_type: "Kredit kartının növü", + credit_card_number: "Kredit kartının nömrəsi", + credit_card_date: "Kredit kartının tarixi", + company_name: "Şirkətin adı", + department: "Şöbə", + industry: "Sənaye sahəsi", + address: "Ünvan", + city: "Şəhər", + region: "Bölgə", + product_name: "Məhsulun adı", + product_category: "Məhsul kateqoriyası", + color: "Rəng", + size: "Ölçü", + weight_unit: "Çəki vahidi", + barcode: "Ştrix-kod", + sku: "SKU", + ip_address: "IP ünvanı", + mac_address: "MAC ünvanı", + file_path: "Faylın yolu", + file_name: "Faylın adı", + file_extension: "Faylın uzantısı", + url: "URL", + hostname: "Hostun adı", + id_number: "ID nömrəsi", + }, + idTypes: { + title: "ID növü", + customPattern: "Xüsusi şablon", + customPatternPlaceholder: "məs. ([A-Z]{'{'}2{'}'})-([0-9]{'{'}8{'}'})", + customPatternHint: "[A-Z] hərfləri, [0-9] rəqəmləri, {'{'}n{'}'} təkrarları və defislər kimi sadə şablonları dəstəkləyir", + id_card: "Çin şəxsiyyət vəsiqəsi", + passport: "Pasport", + hk_macau_pass: "Honq Konq/Makao icazəsi", + taiwan_pass: "Tayvan icazəsi", + uscc: "Vahid sosial kredit kodu", + bank_card: "Bank kartı", + drivers_license: "Sürücülük vəsiqəsi", + custom: "Xüsusi", + }, + insertingTable: "{table} cədvəlinə yazılır (cədvəl {index}/{count})", + elapsed: "{seconds} saniyə keçdi", + samplePreviewNotice: "İlk {shown} nümunə sətir göstərilir; bütün {count} sətir əlavə edilərkən yaradılır", + largeRowCountHint: "Sətir sayı çoxdur ({count}); sətirlər dəstələrlə yaradılıb əlavə edilir və istənilən vaxt ləğv edə bilərsiniz", + timeoutSecs: "Vaxt həddi (saniyə)", + timeoutHint: "0 vaxt məhdudiyyətinin olmadığını bildirir; böyük məlumat həcmləri üçün 0 saxlayın və ya artırın", + batchRows: "Hər dəstədəki sətirlər", + batchRowsHint: "Hər sorğu-cavab dövründə yaradılıb əlavə edilən sətirlər; həddindən artıq böyük dəstələr avtomatik bölünür", + cancelInsert: "Əlavə etməni ləğv et", + cancelledLabel: "Ləğv edildi; artıq yazılmış sətirlər cədvəldə qalır", + }, + tableToolbox: { + title: "Məlumat alətləri", + generateData: "Məlumat yarat", + importData: "Məlumatları idxal et", + exportData: "Məlumatları ixrac et", + generateDataComingSoon: "Tezliklə", + }, + sqlFile: { + title: "SQL faylını icra et", + file: "Fayl", + selectSqlFile: "SQL faylı seç", + browse: "Gözdən keçir", + previewingLines: "{count} sətrin önbaxışı göstərilir", + previewingFirstLines: "İlk {count} sətrin önbaxışı göstərilir", + tooLargeForEditor: "Bu SQL faylının ölçüsü {size} təşkil edir və redaktorun {limit} həddini aşır. Onu axın şəklində emal etmək üçün SQL faylını icra et funksiyasından istifadə edin.", + largeFileExecutionOpened: "Ölçüsü {size} olan bu SQL faylı redaktor üçün çox böyükdür. Axın şəklində emal üçün SQL faylını icra et açılıb.", + target: "Hədəf", + connection: "Əlaqə", + selectConnection: "Əlaqə seç", + database: "Verilənlər bazası", + selectDatabase: "Verilənlər bazası seç", + databasePlaceholder: "Verilənlər bazasının adı", + options: "Seçimlər", + continueOnError: "Xəta olduqda davam et", + runInBackground: "Arxa planda işlət", + cancelling: "Ləğv edilir...", + cancel: "Ləğv et", + execute: "İcra et", + statement: "Əmr", + succeeded: "Uğurlu oldu", + failed: "Uğursuz oldu", + affectedRows: "Təsirə məruz qalan sətirlər", + currentStatement: "Cari əmr", + status: { + idle: "Gözləyir", + started: "Başladıldı", + running: "İşləyir", + statementDone: "Əmr tamamlandı", + statementFailed: "Əmr uğursuz oldu", + done: "Tamamlandı", + error: "Xəta", + cancelled: "Ləğv edildi", + }, + fileProgress: "Fayl {current} / {total}", + fileColumn: "Fayl", + totalFiles: "{count} fayl", + }, + sqlFileTree: { + title: "SQL faylları", + openFolder: "Qovluq aç", + closePanel: "Bağla", + loading: "Yüklənir...", + noFolder: "Qovluq açılmayıb", + noSqlFiles: "SQL faylları tapılmadı", + folderAlreadyOpen: "Bu qovluq artıq açıqdır", + removeFolder: "Qovluğu çıxar", + openFailed: "Qovluğu açmaq mümkün olmadı: {message}", + loadFailed: "SQL fayllarını yükləmək mümkün olmadı: {message}", + desktopOnly: "Bu funksiya yalnız masaüstü tətbiqdə mövcuddur", + refreshFolder: "Qovluğu yenilə", + refreshAll: "Hamısını yenilə", + refreshed: "Yeniləndi", + revealInFileManager: "Fayl menecerində göstər", + revealFailed: "Fayl menecerini açmaq mümkün olmadı: {message}", + copyPath: "Yolu kopyala", + pathCopied: "Yol kopyalandı", + copyFailed: "Yolu kopyalamaq mümkün olmadı", + openFile: "Aç", + executeSqlFile: "SQL faylını icra et", + newSqlFile: "Yeni SQL faylı", + newSqlFileDescription: ".sql uzantısı avtomatik əlavə edilir.", + createFile: "Yarat", + fileCreated: "SQL faylı yaradıldı", + createFailed: "SQL faylını yaratmaq mümkün olmadı: {message}", + renameFile: "Adını dəyiş", + renameFileDescription: ".sql uzantısı avtomatik əlavə edilir.", + fileRenamed: "SQL faylının adı dəyişdirildi", + renameFailed: "SQL faylının adını dəyişmək mümkün olmadı: {message}", + deleteFile: "Faylı sil", + deleteFileConfirm: "{name} silinsin? Bu əməliyyat geri qaytarıla bilməz.", + fileDeleted: "SQL faylı silindi", + deleteFailed: "SQL faylını silmək mümkün olmadı: {message}", + expandAll: "Hamısını genişləndir", + collapseAll: "Hamısını yığ", + filterSettings: "Fayl süzgəci", + fileFilter: "Fayl adının süzgəci", + fileFilterPlaceholder: "Fayl adının süzgəci", + filterInvalid: "Yanlış fayl süzgəci, əvvəlki saxlanıldı: {message}", + fileFilterHint: "*.sql və ya *.sh kimi fayl şablonundan, yaxud {regex} kimi müntəzəm ifadədən istifadə edin.", + }, + diff: { + progress: { + loadingObjects: "Mənbə və hədəf verilənlər bazası obyektləri oxunur...", + loadingSourceDetails: "Mənbə verilənlər bazasının cədvəl strukturları oxunur", + loadingTargetDetails: "Hədəf verilənlər bazasının cədvəl strukturları oxunur", + loadingExtraObjects: "Digər verilənlər bazası obyektləri oxunur...", + comparing: "Sxem fərqləri təhlil edilir...", + generating: "Müqayisə nəticəsi yaradılır...", + next: "Növbəti: {step}", + nextSourceDetails: "Mənbə verilənlər bazasının cədvəl strukturlarını oxu", + nextTargetDetails: "Hədəf verilənlər bazasının cədvəl strukturlarını oxu", + nextExtraObjects: "Digər verilənlər bazası obyektlərini oxu", + nextComparing: "Sxem fərqlərini təhlil et", + nextGenerating: "Müqayisə nəticəsini yarat", + nextComplete: "Tamamla", + count: "{current} / {total}", + }, + title: "Sxemləri müqayisə et", + source: "Mənbə", + target: "Hədəf", + selectConnection: "Əlaqə seç", + selectDatabase: "Verilənlər bazası seç", + selectSchema: "Sxem seç", + connection: "Əlaqə", + database: "Verilənlər bazası", + schema: "Sxem", + recentConfigs: "Son konfiqurasiyalar", + selectRecentConfig: "Son konfiqurasiyanı seç", + ignoreComments: "Şərh fərqlərini nəzərə alma", + compare: "Müqayisə et", + comparing: "Sxemlər müqayisə edilir...", + noDifferences: "Fərq tapılmadı", + table: "Cədvəl", + status: "Vəziyyət", + details: "Təfərrüatlar", + added: "Əlavə edilib", + removed: "Çıxarılıb", + modified: "Dəyişdirilib", + indexes: "İndekslər", + foreignKeys: "Xarici açarlar", + triggers: "Tətikləyicilər", + comments: "Şərhlər", + newTable: "Yeni cədvəl", + dropTable: "Cədvəli sil", + generatedSql: "Sinxronlaşdırma SQL-i", + copySql: "SQL-i kopyala", + executeSync: "Sinxronlaşdırmanı icra et", + syncSuccess: "Sinxronlaşdırma uğurla icra edildi", + swap: "Mənbə ilə hədəfin yerini dəyiş", + syncProgress: "İcra edilir: {current}/{total}", + syncSummary: "Uğurlu: {success}, uğursuz: {failed}", + configSaved: "Konfiqurasiya yadda saxlanıldı", + configDeleted: "Konfiqurasiya silindi", + tableSelection: "Cədvəllər", + chooseTables: "Cədvəlləri seç...", + compareAllTables: "Bütün cədvəlləri müqayisə et", + tableSelectionUnrestricted: "Bütün cədvəllər müqayisə edilir (müntəzəm ifadə süzgəclərindən sonra). Müqayisəni məhdudlaşdırmaq üçün konkret cədvəlləri seçin.", + sourceTables: "Mənbə cədvəlləri", + autoMatchHint: "Hədəf cədvəllər eyni ada görə uyğunlaşdırılır.", + matchedTables: "{matched}/{total} cədvəl uyğunlaşdırıldı", + missingTargetTables: "Eyni adlı hədəf cədvəllər yoxdur: {tables}", + targetTableMatching: "Hədəf cədvəllərin uyğunlaşdırılması", + selectTargetTable: "Hədəf cədvəli seç", + searchTargetTable: "Hədəf cədvəlləri axtar...", + noTargetTables: "Mövcud hədəf cədvəl yoxdur", + tableMatchStatus: { + automatic: "Avtomatik", + manual: "Əl ilə", + unmatched: "Uyğunlaşdırılmayıb", + }, + unmatchedTableWarning: "Seçilmiş {count} mənbə cədvəlinin hədəf uyğunlaşdırması yoxdur", + targetTableInUse: "Bu hədəf cədvəl artıq başqa mənbə cədvəli tərəfindən istifadə olunur", + sourceObject: "Mənbə obyekti", + targetObject: "Hədəf obyekti", + operation: "Əməliyyat", + selectedCount: "{total} obyektdən {selected} seçilib", + saveConfig: "Konfiqurasiyanı yadda saxla", + loadConfig: "Konfiqurasiyanı yüklə", + options: "Seçimlər", + ddlCompare: "DDL müqayisəsi", + deployScript: "Tətbiq skripti", + deployScriptAll: "Bütün tətbiq skriptləri", + deployScriptDesc: "Seçilmiş obyekt üçün SQL skripti", + deployScriptAllDesc: "Bütün seçilmiş obyektlər üçün SQL skripti", + copy: "Kopyala", + execute: "İcra et", + executeAll: "Hamısını icra et", + executeSuccess: "Uğurla icra edildi", + selectObjectToCompare: "DDL müqayisəsinə baxmaq üçün obyekt seçin", + noDdlAvailable: "Mövcud DDL yoxdur", + noDeployScript: "Tətbiq skripti yoxdur", + noDeployScriptAll: "Seçilmiş obyektlər üçün tətbiq skripti yoxdur", + sourceDdl: "Mənbə DDL-i", + targetDdl: "Hədəf DDL-i", + objectNotExistsInSource: "Bu obyekt mənbə verilənlər bazasında mövcud deyil", + objectNotExistsInTarget: "Bu obyekt hədəf verilənlər bazasında mövcud deyil", + nextStepDeploy: "Növbəti (tətbiqi nəzərdən keçir)", + deployReview: "Tətbiqin nəzərdən keçirilməsi", + backToResult: "Nəticəyə qayıt", + copyScript: "Skripti kopyala", + exportSql: ".sql formatında ixrac et", + deployToServer: "Serverə tətbiq et", + deployConfirmTitle: "Son təsdiq", + deployConfirmMessage: "Aşağıdakı dəyişiklikləri hədəf verilənlər bazasına tətbiq etmək üzrəsiniz", + destructiveSqlDetected: "{count} dağıdıcı əməliyyat aşkarlandı; açıq təsdiq tələb olunur", + compatibilityWarnings: "Uyğunluq xəbərdarlıqları", + compatibilityWarningsDetected: "Uyğunluq xəbərdarlıqları: {count}", + targetServer: "Hədəf server", + dbVersion: "Verilənlər bazasının versiyası", + targetDatabase: "Hədəf verilənlər bazası", + targetSchema: "Hədəf sxem", + useTransaction: "Tranzaksiya daxilində icra et (uğursuzluq zamanı avtomatik geri qaytar)", + confirmDeploy: "Tətbiqi təsdiqlə", + exportSuccess: "İxrac uğurlu oldu", + create: "Yarat", + delete: "Sil", + modify: "Dəyişdir", + cancel: "Ləğv et", + prevStep: "Əvvəlki", + recompare: "Yenidən müqayisə et", + maximize: "Maksimum böyüt", + restore: "Bərpa et", + operationLabel: { + modify: "Dəyişdiriləcək obyektlər", + create: "Yaradılacaq obyektlər", + delete: "Silinəcək obyektlər", + none: "Əməliyyat yoxdur", + }, + objectKindLabel: { + table: "Cədvəl", + view: "Görünüş", + function: "Funksiya", + sequence: "Ardıcıllıq", + rule: "Qayda", + owner: "Sahib", + column: "Sütun", + index: "İndeks", + foreignKey: "Xarici açar", + trigger: "Tətikləyici", + tableOption: "Cədvəl seçimləri", + }, + noObjectsSelected: "Tətbiq ediləcək obyektləri seçin", + deploySuccess: "Tətbiq uğurlu oldu", + deployFailed: "Tətbiq uğursuz oldu", + deploySuccessMessage: "SQL skripti hədəf verilənlər bazasında uğurla icra edildi", + deployFailedMessage: "İcra zamanı xəta baş verdi", + affectedRows: "Təsirə məruz qalan sətirlər", + executedStatements: "İcra edilmiş əmrlər", + serverVersion: "Serverin versiyası", + info: "Məlumat", + connType: "Əlaqənin növü", + connName: "Əlaqənin adı", + host: "Host", + addHost: "Host əlavə et", + port: "Port", + copied: "Mübadilə buferinə kopyalandı", + saveConfigPrompt: "Konfiqurasiyanın adını daxil edin:", + defaultConfigName: "Standart", + dependsOn: "asılıdır", + dependedBy: "bundan asılı olanlar", + close: "Bağla", + searchConnection: "Əlaqələri axtar...", + searchDatabase: "Verilənlər bazalarını axtar...", + searchSchema: "Sxemləri axtar...", + openFieldMapping: "Sahələrin uyğunlaşdırılması", + fieldMapping: { + title: "Sahə növlərinin uyğunlaşdırılması", + sameTypeHint: "Mənbə və hədəf eyni verilənlər bazası növündədir. Sahələrin uyğunlaşdırılması yalnız fərqli verilənlər bazası növləri arasında müqayisə zamanı lazımdır.", + preset: "Daxili hazır parametr dəsti", + selectPreset: "Hazır parametr dəsti seç...", + noMappings: "Sahə uyğunlaşdırmaları təyin edilməyib", + sourceType: "Mənbə növü", + targetType: "Hədəf növü", + paramStrategy: "Parametr strategiyası", + strategyPreserve: "Saxla", + strategyStrip: "Çıxar", + strategyCustom: "Xüsusi", + customParamsPlaceholder: "məs. (100)", + addMapping: "Uyğunlaşdırma əlavə et", + autoGenerate: "Avtomatik yarat", + import: "İdxal et", + export: "İxrac et", + done: "Tamamlandı", + importTypeMismatch: "İdxal edilən uyğunlaşdırmalar {src} → {tgt} üçün ixrac edilib, lakin cari müqayisə {curSrc} → {curTgt} arasındadır. Növ uyğunlaşdırmaları dəqiq olmaya bilər. Yenə də davam edilsin?", + importSuccess: "Sahə uyğunlaşdırmaları uğurla idxal edildi", + importError: "Sahə uyğunlaşdırmalarını idxal etmək mümkün olmadı. JSON formatını yoxlayın.", + clearMappings: "Təmizlə", + staleMappingWarning: "Verilənlər bazasının növü {prevSrc} → {prevTgt} əvəzinə {curSrc} → {curTgt} olaraq dəyişib. Mövcud sahə uyğunlaşdırmaları artıq etibarlı olmaya bilər. Onlar təmizlənsin?", + }, + deployMode: "Tətbiq et", + forwardSql: "İrəli tətbiq SQL-i", + rollbackSql: "Geri qaytarma SQL-i", + rollbackMode: "Geri qaytar", + deployMixed: "Tətbiq qismən tamamlandı. Bəzi əmrlər artıq tətbiq edilmiş ola bilər ({executedCount}/{statementCount}). DDL tranzaksiyanı dəstəkləməyə bilər.", + deployRolledBack: "Bütün dəyişikliklər geri qaytarıldı.", + rollbackIncompleteBlocked: "Geri qaytarma SQL-i natamamdır (çatışmayan obyektlər var). İcra bloklanıb.", + rollbackIncompleteBanner: "Geri qaytarma natamamdır — tətikləyici/cədvəl DDL-i çatışmır. İcra etməzdən əvvəl çatışmayan obyektləri düzəldin.", + deployMixedTitle: "Qismən tətbiq edildi", + deployRolledBackTitle: "Geri qaytarıldı", + deployMixedWarning: "Bəzi əmrlər artıq tətbiq edilmiş, digərləri isə uğursuz olmuş ola bilər. Verilənlər bazası uyğunsuz vəziyyətdə ola bilər. Yenidən cəhd etməzdən əvvəl tranzaksiya jurnalını nəzərdən keçirin və əl ilə düzəliş edin.", + }, + rollbackComparison: { + title: "Geri qaytarma müqayisəsi", + forwardSql: "İrəli tətbiq SQL-i", + rollbackSql: "Geri qaytarma SQL-i", + }, + schemaDiff: { + optionsTitle: "Müqayisə seçimləri", + selectConfig: "Konfiqurasiya seç", + newConfigName: "Yeni konfiqurasiya", + newConfig: "Yeni konfiqurasiya", + renameConfig: "Konfiqurasiyanın adını dəyiş", + duplicateConfig: "Konfiqurasiyanın surətini yarat", + deleteConfig: "Konfiqurasiyanı sil", + exportConfig: "Konfiqurasiyanı ixrac et", + exportAllConfigs: "Bütün konfiqurasiyaları ixrac et", + importConfig: "Konfiqurasiyanı idxal et", + importFromFile: "Fayldan idxal et", + importFromText: "Mətndən idxal et", + importPlaceholder: "JSON konfiqurasiyasını yerləşdir...", + importInvalidJson: "Yanlış JSON formatı", + configName: "Konfiqurasiyanın adı", + tableFilter: "Cədvəl süzgəci", + tableFilterHint: "Tam cədvəl adlarını müntəzəm ifadə ilə uyğunlaşdırır. /.../ yazmayın. ^ ilə başlayır, $ ilə bitir, | və ya deməkdir.", + tableFilterHintShort: "Müqayisəni cədvəl adı üçün müntəzəm ifadə ilə məhdudlaşdır", + tableFilterHelp: "Cədvəl süzgəci üzrə kömək", + tableFilterHelpRule: "Tam cədvəl adlarını uyğunlaşdırır. /.../ yazmayın.", + tableFilterHelpBlank: "Daxil etmə sahəsi boşdursa, bütün cədvəllər nəzərə alınır. İstisna sahəsi boşdursa, heç bir cədvəl istisna edilmir.", + tableFilterHelpExample: "^user_ — user_ ilə başlayan; _bak$ — _bak ilə bitən; a|b — a və ya b deməkdir.", + tableIncludePattern: "Yalnız uyğun gələn cədvəlləri müqayisə et", + tableIncludePatternPlaceholder: "məs. ^user_", + tableExcludePattern: "Uyğun gələn cədvəlləri burax", + tableExcludePatternPlaceholder: "məs. _bak$", + tableFilterPriority: "Hər ikisi uyğun gəldikdə", + tableFilterPriorityExclude: "İstisna etmə üstündür", + tableFilterPriorityInclude: "Daxil etmə üstündür", + options: { + tables: "Cədvəlləri müqayisə et", + primaryKeys: "Əsas açarları müqayisə et", + foreignKeys: "Xarici açarları müqayisə et", + uniqueKeys: "Unikal açarları müqayisə et", + checks: "Yoxlama məhdudiyyətlərini müqayisə et", + exclusions: "İstisna məhdudiyyətlərini müqayisə et", + views: "Görünüşləri müqayisə et", + functions: "Funksiyaları müqayisə et", + indexes: "İndeksləri müqayisə et", + sequences: "Ardıcıllıqları müqayisə et", + triggers: "Tətikləyiciləri müqayisə et", + rules: "Qaydaları müqayisə et", + owners: "Sahibləri müqayisə et", + cascadeDelete: "CASCADE ilə silmədən istifadə et", + sequenceLastValues: "Ardıcıllıqların son dəyərlərini müqayisə et", + compareColumnOrder: "Sütunların sırasını müqayisə et", + ignoreTableNameCase: "Cədvəl adlarında böyük-kiçik hərf fərqini nəzərə alma", + ignoreColumnNameCase: "Sütun adlarında böyük-kiçik hərf fərqini nəzərə alma", + detectRenames: "Ad dəyişikliklərini aşkar et", + detectTableRenames: "Cədvəl adlarının dəyişikliklərini aşkar et", + enableRollback: "Geri qaytarmanı aktiv et", + advancedSection: "Əlavə", + renameThreshold: "Ad dəyişmə həddi", + compatibilityThreshold: "Uyğunluq həddi", + sourceDialect: "Mənbə dialekti", + targetDialect: "Hədəf dialekti", + batchSection: "Dəstə", + batchPatterns: "Cədvəl şablonları (vergüllə ayrılmış)", + dialectAuto: "avtomatik", + }, + }, + tableMultiSelect: { + tables: "Cədvəllər", + selected: "{selected}/{total} seçilib", + search: "Cədvəlləri axtar...", + selectAll: "Hamısını seç", + deselectAll: "Bütün seçimləri ləğv et", + noTables: "Mövcud cədvəl yoxdur", + }, + dataCompare: { + title: "Verilənləri müqayisə et", + selectTable: "Cədvəl seç", + searchTable: "Cədvəlləri axtar...", + sourceTables: "Mənbə cədvəllər", + targetTable: "Hədəf cədvəl", + searchTables: "Cədvəlləri axtar...", + selectedTables: "{selected}/{total} seçilib", + selectAllTables: "Hamısını seç", + deselectAllTables: "Bütün seçimləri ləğv et", + selectSourceTables: "Əvvəlcə mənbə əlaqəni və verilənlər bazasını seçin, sonra müqayisə ediləcək cədvəlləri seçin", + noTables: "Müqayisə üçün mövcud cədvəl yoxdur", + autoMatchHint: "Toplu rejim eyni adlı hədəf cədvəlləri avtomatik uyğunlaşdırır", + matchedTables: "{matched}/{total} cədvəl uyğunlaşdırılıb", + missingTargetTables: "Eyni adlı hədəf cədvəllər çatışmır: {tables}", + keyColumns: "Açar sütunlar", + keyColumnsPlaceholder: "Vergüllə ayrılmış əsas və ya unikal sütunlar", + keyColumnsAutoHint: "Tək cədvəl müqayisəsində və ya toplu müqayisədə hər cədvəl üçün əsas açarları avtomatik aşkarlamaq üçün boş buraxın.", + rowCounts: "Mənbədə {source} sətir, hədəfdə {target} sətir; tam müqayisə tamamlandı", + previewLimitOption: "Önbaxış: {count}", + compare: "Verilənləri müqayisə et", + summary: "Əlavə edilib: {added}, çıxarılıb: {removed}, dəyişdirilib: {modified}", + batchSummary: "{tables} cədvəl müqayisə edilib: {different} fərqli, {same} eyni, {failed} uğursuz; əlavə edilib: {added}, çıxarılıb: {removed}, dəyişdirilib: {modified}", + comparingTable: "Müqayisə edilir {current}/{total}: {table}", + keyColumnsInline: "Açar sütunlar: {columns}", + selectedInline: "Seçilib: {selected}/{total}", + selectedSummary: "Seçilənlər: əlavə edilib: {added}, çıxarılıb: {removed}, dəyişdirilib: {modified}", + selectAllKind: "Bütün {kind} elementlərini seç", + clearKind: "{kind} elementlərini təmizlə", + clearSelection: "Bütün seçimləri təmizlə", + showAllRows: "Hamısını göstər: {count}", + showLessRows: "Daha az göstər", + remainingRows: "Önbaxışda daha {count} sətir gizlədilib", + planningSync: "Sinxronlaşdırma planı yenilənir...", + noSelectedDifferences: "İcra üçün heç bir fərq seçilməyib", + planSummary: "Plan: {inserts} əlavəetmə, {updates} yeniləmə, {deletes} silmə, {statements} əmr", + statusDifferent: "Fərqli", + statusSame: "Eyni", + statusError: "Uğursuz", + noKeyColumns: "Ən azı bir açar sütun seçin", + missingKeyColumns: "Açar sütunlar həm mənbə, həm də hədəf cədvəllərdə olmalıdır: {columns}", + noCommonColumns: "Mənbə və hədəf cədvəllərdə müqayisə üçün ortaq sütunlar yoxdur", + targetTableMissing: "Hədəf cədvəl tapılmadı: {table}", + noComparableTables: "Müqayisə edilə bilən cədvəl tapılmadı. Eyni adlı hədəf cədvəllərin mövcudluğunu yoxlayın.", + noDifferences: "Verilənlər eynidir, sinxronlaşdırma SQL-inə ehtiyac yoxdur", + syncSuccess: "Verilənlərin sinxronlaşdırılması uğurla icra edildi", + }, + settings: { + title: "Parametrlər", + searchSettings: "Parametrləri axtar", + searchSettingsNoResults: "Uyğun parametr yoxdur", + searchSettingsResults: "Parametr axtarışının nəticələri", + clearSettingsSearch: "Parametr axtarışını təmizlə", + exitSettingsSearch: "Parametrlərə qayıt", + editorTab: "Redaktor", + globalConnectTimeout: "Qlobal əlaqə vaxt həddi (saniyə)", + globalConnectTimeoutDescription: "Qlobal parametri miras alan əlaqələr tərəfindən istifadə olunur.", + globalQueryTimeout: "Qlobal sorğu vaxt həddi (saniyə)", + globalQueryTimeoutDescription: "Qlobal parametri miras alan əlaqələr tərəfindən istifadə olunur. Vaxt həddini aradan qaldırmaq üçün 0 təyin edin.", + sqlFormatterTab: "SQL formatlayıcısı", + sqlFormatterImport: "Konfiqurasiyanı idxal et", + sqlFormatterExport: "Konfiqurasiyanı ixrac et", + sqlFormatterImportSuccess: "Formatlayıcı konfiqurasiyası idxal edildi.", + sqlFormatterCopyJson: "JSON-u kopyala", + sqlFormatterCopyJsonSuccess: "JSON kopyalandı.", + sqlFormatterCopyJsonFailed: "Kopyalama uğursuz oldu: {message}", + sqlFormatterJsonEditorLoadFailed: "JSON redaktorunu yükləmək mümkün olmadı. Sadə giriş sahəsinə keçildi: {message}", + sqlFormatterRestoreDefaults: "Standart dəyərləri bərpa et", + sqlFormatterFormMode: "Forma", + sqlFormatterJsonMode: "JSON", + sqlFormatterKeywordCase: "Açar sözlərin hərf registri", + sqlFormatterFunctionCase: "Funksiyaların hərf registri", + sqlFormatterDataTypeCase: "Verilən növlərinin hərf registri", + sqlFormatterIdentifierCase: "İdentifikatorların hərf registri", + sqlFormatterCaseUpper: "Böyük hərflər", + sqlFormatterCaseLower: "Kiçik hərflər", + sqlFormatterCasePreserve: "Qoru", + sqlFormatterIndent: "Abzas", + sqlFormatterIndentSpaces: "Boşluqlar", + sqlFormatterIndentTabs: "Tabulyasiyalar", + sqlFormatterTabWidth: "Tabulyasiya eni", + sqlFormatterIndentStyle: "Abzas üslubu", + sqlFormatterIndentStyleStandard: "Standart", + sqlFormatterIndentStyleTabularLeft: "Sola düzülmüş cədvəl", + sqlFormatterIndentStyleTabularRight: "Sağa düzülmüş cədvəl", + sqlFormatterLogicalOperatorNewline: "Məntiqi operator üçün yeni sətir", + sqlFormatterLogicalBefore: "Operatordan əvvəl", + sqlFormatterLogicalAfter: "Operatordan sonra", + sqlFormatterLogicalSameLine: "Eyni sətirdə saxla", + sqlFormatterFromClauseLayout: "FROM bəndinin düzülüşü", + sqlFormatterFromNewLine: "Cədvəl növbəti sətirdə", + sqlFormatterFromSameLine: "FROM ilk cədvəllə birlikdə", + sqlFormatterExpressionWidth: "İfadə eni", + sqlFormatterLinesBetweenQueries: "Sorğular arasındakı sətirlər", + sqlFormatterPreserveEmptyLines: "Boş sətirləri qoru", + sqlFormatterDenseOperators: "Sıx operatorlar", + sqlFormatterNewlineBeforeSemicolon: "Nöqtəli vergül yeni sətirdə", + sqlFormatterAdvancedOptions: "Əlavə seçimlər", + sqlFormatterParams: "Parametrlər", + sqlFormatterParamTypes: "Parametr növləri", + sqlFormatterEditorShortcuts: "Qısayollar", + sqlFormatterShortcutAction: "Əməliyyat", + sqlFormatterShortcutEnabled: "Aktiv", + sqlFormatterShortcutWindows: "Windows", + sqlFormatterShortcutLinux: "Linux", + sqlFormatterShortcutMacos: "macOS", + sqlFormatterShortcutFind: "Tap", + sqlFormatterShortcutReplace: "Əvəz et", + sqlFormatterShortcutIndentMore: "Abzası artır", + sqlFormatterShortcutIndentLess: "Abzası azalt", + sqlFormatterShortcutDuplicateLine: "Cari sətrin surətini yarat", + sqlFormatterShortcutDeleteLine: "Cari sətri sil", + sqlFormatterShortcutMoveLine: "Sətri köçür", + sqlFormatterShortcutMoveLineUp: "Sətri yuxarı köçür", + sqlFormatterShortcutMoveLineDown: "Sətri aşağı köçür", + sqlFormatterShortcutCopyLine: "Sətri kopyala", + sqlFormatterShortcutCopyLineUp: "Sətri yuxarı kopyala", + sqlFormatterShortcutCopyLineDown: "Sətri aşağı kopyala", + sqlFormatterShortcutUndo: "Geri al", + sqlFormatterShortcutRedo: "Təkrar et", + sqlFormatterShortcutSelectAll: "Hamısını seç", + sqlFormatterShortcutFormatJson: "JSON-u formatla", + sqlFormatterShortcutApply: "Konfiqurasiyanı tətbiq et", + sqlFormatterConfigErrorInvalidJson: "Yanlış JSON.", + sqlFormatterConfigErrorObject: "Konfiqurasiya JSON obyekti olmalıdır.", + sqlFormatterConfigErrorVersion: "Dəstəklənməyən konfiqurasiya versiyası.", + sqlFormatterConfigErrorFormatter: "Dəstəklənməyən formatlayıcı.", + sqlFormatterConfigErrorUnsupportedParams: "params əvəzetmə seçimi dəstəklənmir. SQL-in formatlanması yer tutucuları əvəz etməyəcək.", + sqlFormatterConfigErrorOptionsObject: "Konfiqurasiya seçimləri JSON obyekti olmalıdır.", + sqlFormatterConfigErrorEditorObject: "Redaktor konfiqurasiyası JSON obyekti olmalıdır.", + sqlFormatterConfigErrorEditorScope: "Dəstəklənməyən redaktor əhatə dairəsi.", + sqlFormatterConfigErrorEditorPlatforms: "Yanlış redaktor platformaları.", + sqlFormatterConfigErrorEditorShortcutsArray: "Redaktor qısayolları massiv olmalıdır.", + sqlFormatterConfigErrorEditorShortcutValue: "Yanlış redaktor qısayolu.", + sqlFormatterConfigErrorUnknownOption: "Naməlum formatlayıcı seçimi: {option}.", + sqlFormatterConfigErrorInvalidOptionValue: "{option} üçün yanlış dəyər.", + sqlFormatterConfigErrorUnknownEditorShortcut: "Naməlum redaktor qısayolu: {shortcut}.", + sqlFormatterConfigErrorInvalidEditorShortcut: "Yanlış redaktor qısayolu: {shortcut}.", + sqlFormatterConfigErrorDuplicateEditorShortcut: "Təkrarlanan redaktor qısayolu: {shortcut}.", + sqlFormatterConfigErrorInvalidConfig: "Yanlış formatlayıcı konfiqurasiyası.", + appearanceTab: "Görünüş", + navigationTab: "Naviqasiya", + dataTab: "Verilənlər", + sqlFileSizeTab: "SQL faylının ölçüsü", + tunnelsTab: "Tunellər", + tunnelsDescription: "Təkrar istifadə edilə bilən SSH / proksi / HTTP tunel konfiqurasiyaları. Bir dəfə konfiqurasiya edin, sonra əlaqənin tunel vərəqindən profili seçin; buradakı dəyişikliklər profildən istifadə edən bütün əlaqələrə tətbiq olunur.", + tunnelsEmpty: "Hələ tunel profili yoxdur. Burada birini yaradın, sonra əlaqənin tunel parametrlərində onu seçin.", + tunnelsAddSsh: "SSH əlavə et", + tunnelsAddProxy: "Proksi əlavə et", + tunnelsAddHttp: "HTTP tuneli əlavə et", + tunnelsProfileName: "Profil adı", + tunnelsProfileNamePlaceholder: "məs., Ofis keçid serveri", + tunnelsDelete: "Sil", + tunnelsUnnamedProfile: "Adsız profil", + tunnelsSave: "Yadda saxla", + tunnelsReset: "Sıfırla", + tunnelsSaved: "Tunel profilləri yadda saxlanıldı", + tunnelsSaveFailed: "Tunel profillərini yadda saxlamaq mümkün olmadı: {message}", + tunnelsUnsavedHint: "Yadda saxlanılmamış dəyişikliklər", + tunnelsTest: "Yoxla", + tunnelsTesting: "Yoxlanılır...", + tunnelsTestSuccess: "Tunel yoxlaması uğurludur", + tunnelsTestFailed: "Tunel yoxlaması uğursuz oldu: {message}", + tunnelsHttpTestSuccess: "HTTP CONNECT proksi əlaqəsi uğurludur ({code})", + tunnelsSocks5TestSuccess: "SOCKS5 proksi əlaqəsi uğurludur", + tunnelsProxyHostRequired: "Proksi hostu tələb olunur.", + tunnelsProxyPortRequired: "Proksi portu tələb olunur.", + tunnelsSshHostRequired: "SSH hostu tələb olunur.", + tunnelsHttpTunnelUnsupported: "HTTP tunel profilləri üçün tunel yoxlaması dəstəklənmir.", + tunnelsProxyTimedOut: "Proksi əlaqəsinin vaxt həddi bitdi ({duration})", + tunnelsProxyConnectFailed: "Proksiyə qoşulmaq mümkün olmadı: {error}", + tunnelsProxyHandshakeFailed: "Proksi ilə ilkin razılaşma uğursuz oldu: {error}", + tunnelsProxyHandshakeTimedOut: "Proksi ilə ilkin razılaşmanın vaxt həddi bitdi ({duration})", + tunnelsHttpConnectFailed: "HTTP proksisinin CONNECT əməliyyatı uğursuz oldu: {detail}", + tunnelsSocksInvalidVersion: "Yanlış SOCKS proksi versiyası: {version}", + tunnelsSocksAuthTooLong: "SOCKS istifadəçi adı və ya parolu çox uzundur", + tunnelsSocksAuthFailed: "SOCKS proksi autentifikasiyası uğursuz oldu", + tunnelsSocksAuthRejected: "SOCKS proksisi dəstəklənən bütün autentifikasiya üsullarını rədd etdi", + tunnelsSocksUnsupportedAuth: "SOCKS proksisi dəstəklənməyən autentifikasiya üsulunu seçdi: {method}", + tunnelsSocksHostTooLong: "Proksi hostu SOCKS5 domen ünvanı üçün çox uzundur", + tunnelsSocksConnectRejected: "SOCKS proksi əlaqəsi rədd edildi (kod {code})", + tunnelsSocksUnsupportedAddrType: "Dəstəklənməyən SOCKS bağlanmış ünvan növü: {type}", + redisTab: "Redis", + shortcutsTab: "Qısayollar", + snippetsTab: "Kod parçaları", + syncTab: "Sinxronlaşdırma", + aiTab: "AI", + mcpTab: "MCP", + jdbcTab: "JDBC drayverləri", + securityTab: "Təhlükəsizlik", + aboutTab: "Haqqında", + fontFamily: "Şrift ailəsi", + dataGridFontFamily: "Nəticə cədvəlinin şrifti", + dataGridFontFamilyDescription: "Sorğu nəticələrinə, cədvəl verilənlərinə, sütun başlıqlarına və xanadaxili redaktorlara tətbiq olunur.", + uiFontFamily: "İnterfeys şrifti", + uiFontAppDefault: "DBX standartı", + uiFontSystemDefault: "Sistem standartı", + uiFontFamilyDescription: "Alətlər paneli, vərəqlər, yan panel, dialoqlar və redaktordan kənar digər interfeys elementlərinə tətbiq olunur.", + selectFont: "Şrift seç...", + searchFont: "Şriftləri axtar...", + loadingFonts: "Şriftlər yüklənir...", + noFontsFound: "Şrift tapılmadı", + useCustomFont: "“{font}” şriftindən istifadə et", + languageTitle: "Dil", + fontSize: "Şrift ölçüsü", + toolbarTitle: "Alətlər paneli", + toolbarHiddenHint: 'Bəzi gizli və ya yer çatmadığı üçün göstərilməyən düymələr "Daha çox" açılan menyusunda görünür.', + exclusiveRightSidebarPanels: "Sağ yan paneldə eyni anda bir panel göstər", + exclusiveRightSidebarPanelsDescription: "Sağ yan paneldə bir panelin açılması digərlərini bağlayır. Bir neçə panelə icazə vermək üçün bunu deaktiv edin.", + uiScale: "İnterfeys miqyası", + uiScaleDescription: "Yüksək DPI ekranları üçün bütün masaüstü interfeysinin miqyasını dəyişin. Dəyişikliklər dərhal tətbiq olunur və növbəti işəsalmada bərpa edilir.", + theme: "Tema", + cornerStyle: "Künc üslubu", + backgroundImage: "Fon şəkli", + backgroundImageDescription: "Bütün tətbiqin arxasına şəkil təyin edin. Oxunaqlılıq üçün kartlar və dialoqlar qeyri-şəffaf qalır.", + backgroundImageChoose: "Şəkil seç…", + backgroundImageClear: "Təmizlə", + backgroundImageNone: "Şəkil təyin edilməyib", + backgroundImageTransparency: "Şəffaflıq", + backgroundImageDisplayMode: "Göstərmə rejimi", + backgroundImageModeFill: "Doldur", + backgroundImageModeFit: "Sığdır", + backgroundImageModeStretch: "Dart", + backgroundImageModeCenter: "Mərkəzləşdir", + backgroundImageModeTile: "Döşə", + backgroundImageBlur: "Bulanıqlıq", + backgroundImageMissing: "Şəkil faylı artıq mövcud deyil. Onu yenidən seçin.", + backgroundImageTooLarge: "Şəkil 20 MB ölçü həddini aşır.", + backgroundImageSaveFailed: "Fon şəklini yadda saxlamaq mümkün olmadı.", + backgroundImageFilterName: "Şəkil", + cornerStyleNone: "Kvadrat", + cornerStyleSmall: "Kiçik", + cornerStyleLarge: "Böyük", + selectTheme: "Tema seç...", + colorTheme: "Rəng teması", + selectColorTheme: "Rəng teması seç...", + themePalettePearl: "Ağ", + themePaletteMist: "Duman bozu", + themePaletteGraphite: "Titan bozu", + themePaletteCobalt: "Kobalt mavisi", + themePaletteSage: "Adaçayı yaşılı", + themePaletteAmber: "İsti sarı", + themePaletteBlush: "Sakura çəhrayısı", + themePaletteVscode: "VS Code", + themePaletteIdea: "IDEA", + themePaletteXcode: "Xcode", + themePaletteJetbrains: "JetBrains", + themePaletteCursor: "Cursor", + themePaletteClaude: "Claude Code", + themePaletteCustom: "Fərdi", + customUiReset: "Standart dəyərlərə sıfırla", + customUiEditingLight: "Açıq rejim rəngləri redaktə edilir", + customUiEditingDark: "Tünd rejim rəngləri redaktə edilir", + customUiBackground: "Fon", + customUiForeground: "Ön plan", + customUiPrimary: "Əsas", + customUiBorder: "Haşiyə", + customUiSidebar: "Yan panel", + followAppTheme: "Tətbiq temasını izlə", + appLayout: "İnterfeys düzülüşü", + appLayoutSeparated: "Müasir ayrılmış", + appLayoutSeparatedDescription: "Blok üslublu vərəqlərlə panellərin aydın ayrılması.", + appLayoutClassic: "Klassik yığcam", + appLayoutClassicDescription: "Yığcam panel başlıqları ilə fasiləsiz vərəq zolağı.", + tabLayout: "Vərəq zolağının daşması", + tabLayoutScroll: "Bir sətirdə sürüşdürmə", + tabLayoutScrollDescription: "Vərəqlər sığmadıqda bir sətirdə üfüqi sürüşdürülür.", + tabLayoutWrap: "Bir neçə sətrə keçirmə", + tabLayoutWrapDescription: "Bütün vərəqləri eyni anda göstərmək üçün onlar bir neçə sətrə keçirilir.", + tabPlacement: "Vərəq zolağının mövqeyi", + tabPlacementTop: "Yuxarı", + tabPlacementBottom: "Aşağı", + tabPlacementLeft: "Sol tərəf", + tabPlacementRight: "Sağ tərəf", + tabPlacementDescription: "Yan vərəq zolaqları şaquli sürüşdürülür; bir neçə sətrə keçirmə yalnız məzmunun üstündə və ya altında tətbiq olunur.", + tabGroup: "Qruplaşdırma meyarı", + tabGroupNone: "Qruplaşdırma yoxdur", + tabGroupDatabaseType: "Verilənlər bazasının növünə görə qruplaşdır", + tabGroupDatabase: "Verilənlər bazasına görə qruplaşdır", + tabGroupConnection: "Əlaqəyə görə qruplaşdır", + tabSort: "Sıralama meyarı", + tabSortManual: "Əl ilə sıralama", + tabSortCreated: "Yaradılma vaxtı", + tabSortTitle: "Vərəq adı", + tabOrganizationDescription: "Qruplaşdırma və sıralama yalnız göstərilən ardıcıllığa təsir edir. Əl ilə sıralamada sürükləmə mümkündür.", + iconTheme: "İkon və loqo üslubu", + iconThemeDefault: "Standart", + iconThemeDefaultDescription: "DBX tətbiqinin rəngli ikonundan istifadə et.", + iconThemeBlack: "Qara", + iconThemeBlackDescription: "Tətbiqdə qara DBX loqosundan istifadə et.", + iconThemeBlackDescriptionMac: "Tətbiqdə qara loqodan istifadə et; Dock qara lövhədən istifadə edir, menyu zolağı isə sistemə uyğunlaşır.", + showTrayIcon: "Sistem treyi/menyu zolağı ikonunu göstər", + showTrayIconDescription: "Deaktiv olduqda ikon göstərilmir, lakin pəncərəni bağlamaq DBX-i əvvəlki kimi arxa planda gizlədir.", + quitOnClose: "Pəncərə bağlandıqda çıx", + quitOnCloseDescription: "Aktiv olduqda bağlama düyməsinə klikləmək DBX-i sistem treyində gizlətmək əvəzinə tamamilə bağlayır. Bunu daha sonra Görünüş parametrlərində dəyişə bilərsiniz.", + closeActionPromptTitle: "Pəncərəni bağla", + closeActionPromptDescription: "Bağlama düyməsinə kliklədikdə nə baş verəcəyini seçin. Bunu daha sonra Parametrlər > Görünüş bölməsində dəyişə bilərsiniz.", + closeActionQuit: "DBX-dən çıx", + closeActionMinimize: "Sistem treyinə kiçilt", + updateNotificationsEnabled: "Yeniləmə xatırlatmalarını aktiv et", + updateNotificationsEnabledDescription: "Deaktiv olduqda DBX tətbiq və ya drayver yeniləmələrini avtomatik yoxlamayacaq və yeniləmə nişanlarını göstərməyəcək. Əl ilə yoxlama yenə mümkündür.", + updateDownloadSource: "Yeniləmələrin endirmə mənbəyi", + updateDownloadSourceDescription: "Tətbiq yeniləmələrinin, verilənlər bazası agentlərinin, drayverlərin və idarə olunan JRE-lərin haradan endiriləcəyini seçin. Rəsmi mənbə tövsiyə olunur; CNB materik Çin şəbəkələrində daha sürətli ola bilər.", + updateDownloadSourceOfficial: "Rəsmi mənbə (tövsiyə olunur)", + updateDownloadSourceCnb: "CNB", + debugLoggingEnabled: "Sazlama jurnallarını aktiv et", + debugLoggingEnabledDescription: "Bildirilən problemləri araşdırarkən istifadəçi tərəfində daha ətraflı yerli diaqnostika jurnalları qeydə alın. Standart olaraq deaktivdir.", + metadataCacheMemoryLimit: "Metaverilənlərin yaddaş keşinin həddi", + metadataCacheMemoryLimitDescription: "Standart dəyər 64 MB-dır. Mümkün olduqda 256 MB və ya daha az saxlayın; mütləq hədd 512 MB-dır. DDL, sütunlar, indekslər, xarici açarlar, tətikləyicilər və şərhləri əhatə edir.", + duckDbWorkerProcessIsolation: "DuckDB prosesinin təcridetmə rejimi (eksperimental)", + duckDbWorkerProcessIsolationDescription: "DuckDB sorğularını ayrıca işçi prosesində işlədir. Uzun sorğu ləğvetməyə cavab vermirsə, DBX verilənlər bazası faylının kilidini açmaq üçün işçi prosesini dayandıra bilər.", + duckDbWorkerMaxProcesses: "DuckDB üçün maksimum paralel işçi sayı", + duckDbWorkerMaxProcessesDescription: "DBX-in eyni anda işlədə biləcəyi DuckDB işçi proseslərinin sayını məhdudlaşdırır. Aralıq: 1-16. Standart: 4.", + duckDbWorkerProcessIsolationRestartRequired: "Bu dəyişikliyin qüvvəyə minməsi üçün DBX-i yenidən başladın.", + restartDbx: "DBX-i yenidən başlat", + restartDbxFailed: "DBX-i yenidən başlatmaq mümkün olmadı: {error}", + applyFailed: "Parametrləri tətbiq etmək mümkün olmadı: {error}", + unsavedChangesCloseTitle: "Yadda saxlanılmamış dəyişikliklər", + unsavedChangesCloseMessage: "Parametrlərdə yadda saxlanılmamış dəyişikliklər var və indi bağlasanız, onlar itəcək. Bu dəyişikliklərdən imtina edilsin?", + unsavedChangesCloseCancel: "Redaktəyə davam et", + unsavedChangesCloseDiscard: "Dəyişikliklərdən imtina et", + debugLogsCopy: "Jurnalları kopyala", + debugLogsCopied: "Kopyalandı", + debugLogsDownload: "Jurnalları endir", + debugLogsDownloaded: "Endirildi", + debugLogsClear: "Jurnalları təmizlə", + tableStructureSection: "Cədvəl strukturu", + dataGridDisplay: "Verilənlər cədvəlinin görünüşü", + dataGridFilterView: "Cədvəl süzgəcinin görünüşü", + dataGridFilterViewDescription: "Açılan süzgəc pəncərəsindən, sabit şərtlər panelindən və ya yığcam mətn şərtləri panelindən istifadə edin.", + dataGridAutoHideFilterBuilder: "Tətbiq etdikdən sonra süzgəc redaktorunu avtomatik gizlət", + dataGridAutoHideFilterBuilderDescription: "Deaktiv olduqda redaktəyə davam edə bilməyiniz üçün süzgəc redaktoru tətbiqdən sonra açıq qalır.", + dataGridFilterViewPreview: "Təsirin önbaxışı", + dataGridFilterViewPreviewExpand: "Təsirin önbaxışını genişləndir", + dataGridFilterViewPreviewCollapse: "Təsirin önbaxışını yığ", + tableOpenPageSize: "Cədvəllər açıldıqda səhifə başına standart sətir sayı", + tableOpenPageSizeDescription: "Yeni cədvəl açıldıqda hər səhifədə yüklənən sətirlər. Cədvəldə səhifə başına sətir sayını dəyişmək gələcək cədvəl vərəqləri üçün bu standartı yeniləyir.", + queryPageSize: "Sorğuda səhifə başına standart sətir sayı", + queryPageSizeDescription: "Sorğu nəticəsinin hər səhifəsində yüklənən sətirlər. Dəstəklənən maksimum səhifə ölçüsü {max} təşkil edir.", + multiStatementDefaultView: "Bir neçə əmr üçün standart görünüş", + multiStatementDefaultViewDescription: "Bir neçə SQL əmrindən ibarət toplunun nəticə cədvəlində, yoxsa icra xülasəsində açılacağını seçin.", + queryResultMaxRows: "Sorğu nəticəsində maksimum sətir sayı", + queryResultMaxRowsEnabled: "Sorğu nəticəsindəki sətirləri məhdudlaşdır", + queryResultMaxRowsDescription: "Sorğuların, cədvəl verilənlərinin, saxlanılan prosedurların və davamlı yükləmənin qaytardığı sətirləri məhdudlaşdırır.", + queryResultMaxRowsTooSmall: "Ən azı sorğunun səhifə ölçüsü ({pageSize}) qədər olmalıdır.", + externalSqlEditorMaxMb: "SQL redaktorunda maksimum fayl ölçüsü", + externalSqlEditorMaxMbDescription: "Bu ölçüdən böyük SQL faylları redaktor əvəzinə axınla icra edən SQL faylını icra et dialoquna yönləndirilir ({min}–{max} MB).", + webSqlFileUploadMaxMb: "Vebdə SQL faylı yükləməsinin maksimum ölçüsü", + webSqlFileUploadMaxMbDescription: "Veb serverin axınla icra üçün qəbul etdiyi ən böyük SQL faylı ({min}–{max} MB).", + sqlFileUploadMaxMbSaved: "Vebdə SQL faylı yükləməsinin ölçüsü yadda saxlanıldı.", + showColumnCommentsInHeader: "Sütun şərhlərini adların altında göstər", + showColumnCommentsInHeaderDescription: "Cədvəl sütunlarının şərhlərini birbaşa sütun adlarının altında göstər.", + showColumnTypesInHeader: "Sütun növlərini adların altında göstər", + showColumnTypesInHeaderDescription: "Hər sütunun verilən növünü birbaşa cədvəldəki sütun adlarının altında göstər.", + dataGridShowTransposeFieldMetadata: "Transpozisiya görünüşündə sahə metaverilənlərini göstər", + dataGridShowTransposeFieldMetadataDescription: "Transpozisiya görünüşündə aktiv edilmiş sütun növlərini və şərhləri ayrı sətirlərdə göstər. Bu, sətrin hündürlüyünü artırır.", + colorizeDataGridCellTypes: "Verilənlər cədvəlinin dəyərlərini rənglə fərqləndir", + colorizeDataGridCellTypesDescription: "Dəyərləri sütunlarının verilən növünə görə fərqləndirmək üçün temaya uyğun yumşaq mətn rənglərindən istifadə et.", + dataGridTypeColorScheme: "Verilən növünün rəng sxemi", + dataGridTypeColorSchemeDescription: "Cədvəlin dəyərləri verilən növünə görə rəngləndirmək üçün istifadə etdiyi palitranı seçin.", + dataGridTypeColorSchemeConfigure: "Fərdiləşdir", + dataGridTypeColorSchemeTitle: "Verilən növlərinin rəngləri", + dataGridTypeColorSchemeAuto: "Temanı izlə", + dataGridTypeColorSchemeAutoHint: "Daxili rənglər istifadə olunur, açıq və tünd palitralar arasında avtomatik keçid edilir.", + dataGridTypeColorSchemeCreateFromCurrent: "Bu rənglərdən sxem yarat", + dataGridTypeColorSchemeAdd: "Yeni sxem", + dataGridTypeColorSchemeDuplicate: "Sxemin surətini yarat", + dataGridTypeColorSchemeRename: "Sxemin adını dəyiş", + dataGridTypeColorSchemeRenameConfirm: "Adını dəyiş", + dataGridTypeColorSchemeDelete: "Sxemi sil", + dataGridTypeColorSchemeReset: "Rəngləri sıfırla", + dataGridTypeColorSchemeDone: "Hazırdır", + dataGridTypeColorSchemeDefaultName: "Rəng sxemi", + dataGridTypeColorSchemeCopySuffix: " Surət", + dataGridTypeColorInteger: "Tam ədəd", + dataGridTypeColorNumeric: "Onluq ədəd", + dataGridTypeColorString: "Mətn", + dataGridTypeColorBoolean: "Məntiqi", + dataGridTypeColorTemporal: "Tarix və vaxt", + dataGridTypeColorStructured: "Strukturlaşdırılmış", + dataGridTypeColorIdentifier: "İdentifikator", + dataGridTypeColorBinary: "İkilik", + dataGridTypeColorSpatial: "Məkan", + showIndexIndicatorsInHeader: "Sütun adlarının yanında indeks göstəricilərini göstər", + showIndexIndicatorsInHeaderDescription: "Cədvəl başlığında hər sütunun indeks növünü ikonlarla göstər: əsas açar (narıncı), unikal indeks (qırmızı), adi indeks (yaşıl).", + compactColumnHeaderActions: "Yığcam sütun başlığı alətləri", + compactColumnHeaderActionsDescription: "Sütun adlarına üstünlük vermək üçün formatlayıcı və yerli süzgəc alətlərini əlavə menyuya köçür.", + dataGridQuickEntry: "Cədvələ sürətli daxiletmə", + dataGridQuickEntryDescription: "Aktiv olduqda xanada redaktə edilən və ya altdakı boş sətrə daxil edilən məlumat fokus çıxan kimi verilənlər bazasında yadda saxlanılır. Tez-tez məlumat daxil etmək üçün faydalıdır, lakin təsadüfi yazmalara səbəb ola bilər.", + dataGridAutoTransposeSingleRow: "Tək sətirli sorğu nəticələrini avtomatik transpozisiya et", + dataGridAutoTransposeSingleRowDescription: "Aktiv olduqda yalnız bir sətri və bir neçə sütunu olan SQL sorğu nəticələri avtomatik transpozisiya görünüşünə keçir.", + dataGridCellDetailButtonVisible: "Xana təfərrüatları düyməsini göstər", + dataGridCellDetailButtonVisibleDescription: "Kursor xananın üzərinə gətirildikdə xana təfərrüatları düyməsini göstər.", + dataGridCrosshairHighlight: "Sətir və sütunun çarpaz vurğulanması", + dataGridCrosshairHighlightDescription: "Aktiv olduqda aktiv xananın bütün sətrini və sütununu yüngülcə vurğula (Excel-dəki kimi). Fokuslanmış xana seçilmiş üslubunu saxlayır.", + infiniteScroll: "Sonsuz sürüşdürmə ilə yükləmə", + autoCalculateTotalRows: "Ümumi sətir sayını avtomatik hesabla", + autoCalculateTotalRowsDescription: "Uyğun gələn sətirlərin ümumi sayını göstərmək üçün hər sorğudan sonra COUNT(*) avtomatik işlədilir. Böyük sorğuların sürətini qorumaq üçün standart olaraq söndürülüb — ehtiyac olduqda nəticənin alt hissəsindən hesablayın.", + infiniteScrollDescription: "Aşağıya sürüşdürdükdə növbəti toplunu avtomatik yüklə.", + flatteningMultiLineText: "Çoxsətirli mətnin bir sətrə birləşdirilməsi", + flatteningMultiLineTextDescription: "Çoxsətirli mətn bir sətirdə göstərilir, sətir keçidləri ¶ kimi göstərilir.", + regexMaxMatchCount: "Hamısını seçmək üçün maksimum uyğunluq sayı", + regexMaxMatchCountDescription: "Bütün uyğunluqları seç əməliyyatının yaratdığı seçim sayını məhdudlaşdırır; axtarış sayımı tam qalır (100–10000).", + tableColumnTemplateFields: "Yeni cədvəl üçün əvvəlcədən təyin edilmiş sahələr", + tableColumnTemplateFieldsDescription: "Verilənlər bazasının növünü seçin, sonra yeni cədvəllər yaradılarkən istifadə olunan əvvəlcədən təyin edilmiş sahə növlərini konfiqurasiya edin.", + tableColumnTemplateAdd: "Sahə əlavə et", + tableColumnTemplateColumn: "Sahə", + tableColumnTemplateDatabase: "Verilənlər bazası", + tableColumnTemplateType: "Növ", + tableColumnTemplateLength: "Uzunluq", + tableColumnTemplateDefault: "Standart", + tableColumnTemplateNoPresetType: "Əvvəlcədən təyin edilmiş növ yoxdur", + tableColumnTemplateRequired: "Tələb olunur", + tableColumnTemplateComment: "Təsvir", + tableColumnTemplateDragHandle: "Sıralamanı dəyişmək üçün sürükləyin", + sidebarActivation: "Yan panelin aktivləşdirilməsi", + sidebarActivationSingle: "Tək klik", + sidebarActivationSingleDescription: "Yan paneldə əməliyyat edilə bilən elementləri bir kliklə aç.", + sidebarActivationDouble: "İki klik", + sidebarActivationDoubleDescription: "Tək klik sətirləri seçir; iki klik elementləri açır.", + sidebarObjectDisplay: "Yan panel obyektlərinin düzülüşü", + sidebarObjectDisplayGrouped: "Genişləndirilmiş görünüş", + sidebarObjectDisplayGroupedDescription: "Daha çox obyekt növü olan verilənlər bazalarında obyektləri cədvəllər, görünüşlər, prosedurlar və funksiyalar üzrə qruplaşdır.", + sidebarObjectDisplaySimple: "Sadə görünüş", + sidebarObjectDisplaySimpleDescription: "Aralıq səviyyələri azaltmaq üçün cədvəlləri və görünüşləri birbaşa hər verilənlər bazasının və ya sxemin altında siyahıla.", + routineSourceOpenMode: "Funksiya / prosedur / görünüş açılma rejimi", + routineSourceOpenModeQueryTab: "Verilənlər vərəqi", + routineSourceOpenModeQueryTabDescription: "Mənbə kodunu SQL sorğularını işlətməklə eyni qaydada yeni verilənlər vərəqində aç.", + routineSourceOpenModeDialog: "Dialoq pəncərəsi", + routineSourceOpenModeDialogDescription: "Sürətli baxış və redaktə üçün mənbə kodunu açılan dialoqda aç.", + autoSelectActiveSidebarNode: "Həmişə açılmış elementi seç", + autoSelectActiveSidebarNodeDescription: "Vərəqlər arasında keçid edərkən yan paneldə uyğun görünən cədvəli, kolleksiyanı və ya SQL faylını seç.", + sidebarBrowseObjectsOnDatabaseActivation: "Verilənlər bazası aktivləşdirildikdə obyektlərə bax", + sidebarBrowseObjectsOnDatabaseActivationDescription: 'Aktiv olduqda, seçilmiş tək və ya ikiqat klik rejimi ilə verilənlər bazası və ya sxem düyününün aktivləşdirilməsi "Obyektlərə bax" vərəqini də açır.', + openTabsRestoreMode: "Başladıqda vərəqləri bərpa et", + openTabsRestoreModeDescription: "DBX-in sonuncu dəfə açıq olan vərəqləri necə bərpa edəcəyini seçin.", + openTabsRestoreModeAll: "Bütün vərəqləri saxla", + openTabsRestoreModePinned: "Yalnız bərkidilmiş vərəqləri saxla", + openTabsRestoreModeNone: "Vərəqləri saxlama", + openTabsRestoreModeHint: "Bərkidilmiş vərəqlər vərəq zolağının sol tərəfində qalır və tez-tez istifadə olunan giriş nöqtələri kimi əlverişlidir.", + disconnectTabHandlingMode: "Əlaqə kəsildikdən sonra vərəqlər", + disconnectTabHandlingModeDescription: "Əlaqə və ya verilənlər bazası bağlandıqdan sonra əlaqəli vərəqlərin necə idarə olunacağını seçin.", + disconnectTabHandlingModeCloseTabs: "Bütün vərəqləri bağla", + disconnectTabHandlingModeCloseTabsDescription: "Əlaqə və ya verilənlər bazası ilə əlaqəli bütün vərəqləri bağla.", + disconnectTabHandlingModeKeepTabsClearResults: "Obyekt vərəqlərini bağla, SQL vərəqlərini saxla", + disconnectTabHandlingModeKeepTabsClearResultsDescription: "SQL sorğu vərəqlərini və SQL mətnini saxlayaraq cədvəl verilənləri, obyekt brauzeri və struktur vərəqlərini bağla, həmçinin icra vəziyyətini və nəticə sessiyalarını təmizlə.", + disconnectTabHandlingModeKeepTabsKeepResults: "Əlaqəli vərəqləri bağlama", + disconnectTabHandlingModeKeepTabsKeepResultsDescription: "Əlavə təmizləmə aparmadan əlaqəli vərəqləri, SQL mətnini və cari nəticələri saxla.", + reuseDataTab: "Verilənlər vərəqindən təkrar istifadə et", + reuseDataTabDescription: "Cədvəl açılarkən verilənlər vərəqlərindən necə istifadə olunacağını seçin.", + openDataTabsNextToActive: "Yeni verilənlər vərəqlərini aktiv vərəqin yanında aç", + openDataTabsNextToActiveDescription: "Yeni yaradılmış cədvəl verilənləri vərəqlərini aktiv vərəqdən dərhal sonra yerləşdir.", + dataTabReuseAlwaysNew: "Həmişə yeni vərəq aç", + dataTabReuseAlwaysNewDescription: "Cədvəl artıq açıq olsa belə, hər dəfə yeni verilənlər vərəqi yarat.", + dataTabReuseSameTable: "Eyni cədvəldən təkrar istifadə et", + dataTabReuseSameTableDescription: "Eyni cədvəl üçün mövcud vərəqə keç və fərqli cədvəlləri ayrıca aç.", + dataTabReuseActiveTab: "Aktiv verilənlər vərəqindən təkrar istifadə et", + dataTabReuseActiveTabDescription: "Başqa cədvəl üçün aktiv təhlükəsiz verilənlər vərəqindən təkrar istifadə et; qorunan vərəqlər ayrıca açılır.", + sidebarHiddenTablePrefixes: "Gizlədilən cədvəl adı prefiksləri", + sidebarHiddenTablePrefixesDescription: "Hər sətirdə bir prefiks. Yalnız yan paneldəki cədvəl, görünüş və kolleksiya etiketləri qısaldılır; ipucları və əməliyyatlar tam addan istifadə edir.", + sidebarHiddenTablePrefixesPlaceholder: "Nümunə:\nODS_\nT8Y2_LONG_", + sidebarCopyTableNameSeparator: "Cədvəl adlarını kopyalama ayırıcısı", + sidebarCopyTableNameSeparatorDescription: "Yan paneldəki bir neçə cədvəl və ya sütun adını SQL redaktoruna kopyalayarkən və ya sürükləyərkən istifadə olunan ayırıcı.", + sidebarCopyTableNameIncludeSchema: "Kopyalanan cədvəl adlarına sxemi daxil et", + sidebarCopyTableNameIncludeSchemaDescription: "Aktiv olduqda kopyalanan və ya sürüklənən cədvəl adları aktiv əlaqənin identifikator dırnaqlama qaydaları ilə sxem adı daxil edilmiş formada olur.", + sidebarTablePageSize: "Yan panelin səhifə ölçüsü", + sidebarTablePageSizeDescription: "Yan panel ağacında hər səhifədə yüklənən maksimum cədvəl/obyekt sayı. Çox cədvəliniz varsa və daha az səhifə istəyirsinizsə, artırın.", + sidebarTableSearchEnabled: "Verilənlər bazalarında cədvəl axtarışını aktiv et", + sidebarTableSearchEnabledDescription: "Hər əhatə dairəsində cədvəlləri müstəqil süzmək üçün genişləndirilmiş verilənlər bazaları, sxemlər və ya cədvəl qruplarının altında yerli cədvəl axtarışı sahəsi göstər.", + sidebarObjectInfoMode: "Yan paneldə əlavə məlumat", + sidebarObjectInfoModeDescription: + "Adlardan sonra şərhlər, obyekt ölçüləri və ya əlavə mətnin olmamasını seçin. Şərhlər və ölçülər eyni anda göstərilə bilməz. Verilənlər bazalarının ümumi ölçüləri hazırda PostgreSQL üçün; cədvəl ölçüləri isə MySQL, PostgreSQL, GaussDB, KingbaseES, GBase 8a, SQL Server, Oracle, Dameng və ClickHouse üçün dəstəklənir.", + sidebarObjectInfoModeCommentInline: "Şərhlər (addan sonra)", + sidebarObjectInfoModeCommentAligned: "Şərhlər (eyni səviyyədəkiləri düzləndir)", + sidebarObjectInfoModeCommentRight: "Şərhlər (sağa düzləndir)", + sidebarObjectInfoModeSize: "Obyekt ölçüsü", + sidebarObjectInfoModeHidden: "Yoxdur", + sidebarAllowHorizontalScroll: "Yan paneldə üfüqi sürüşdürməyə icazə ver", + sidebarAllowHorizontalScrollDescription: "Yan paneldə üfüqi sürüşdürməyə icazə verərək uzun cədvəl, görünüş və kolleksiya adlarını tam göstər.", + sidebarShowTooltips: "Yan paneldə kursor üzərinə gətirildikdə ipucları", + sidebarShowTooltipsDescription: "Kursor yan paneldəki əlaqələrin və verilənlər bazası obyektlərinin üzərinə gətirildikdə ətraflı ipucları göstər. Bu pəncərələri dayandırmaq üçün söndürün.", + sidebarIndent: "Yan panel abzası", + sidebarIndentDescription: "Ağacın hər dərinlik səviyyəsi üçün əlavə olunan üfüqi məsafə, piksellə.", + sidebarFontSize: "Yan panel şriftinin ölçüsü", + sidebarFontSizeDescription: "Yan paneldəki obyekt ağacının şrift ölçüsü, piksellə. Redaktorun şrift ölçüsündən asılı deyil.", + snippetsDescription: "Redaktorda işə salınan SQL kod parçası şablonlarını fərdiləşdirin.", + snippetsPlaceholderHint: "Redaktə edilə bilən yer tutucu yaratmaq üçün {'${number:default text}'} sintaksisindən istifadə edin. Eyni nömrəli yer tutucular əlaqəli qalır; məsələn:", + snippetsAdd: "Kod parçası əlavə et", + snippetsLabel: "Etiket", + snippetsPrefix: "Prefiks", + snippetsStatus: "Vəziyyət", + snippetsEnabled: "Aktiv", + snippetsDisabled: "Deaktiv", + snippetsToggle: "Kod parçasını aktiv və ya deaktiv et", + snippetsBody: "SQL məzmunu", + snippetsLabelPlaceholder: "məs., select *", + snippetsPrefixPlaceholder: "məs., sel", + snippetsBodyPlaceholder: "SELECT *\nFROM table\nLIMIT 100;", + snippetsRestoreDefaults: "Standart dəyərləri bərpa et", + snippetsAddTitle: "Kod parçası əlavə et", + snippetsEditTitle: "Kod parçasını redaktə et", + sqlShortcutsTitle: "SQL sürətli əməliyyatları", + sqlShortcutsDescription: "SQL redaktorunda cədvəl adı seçildikdən sonra icra olunan fərdi SQL şablonları. Əvvəlcə cədvəl identifikatorunu seçin; Cmd/Ctrl ilə qısayollar tövsiyə olunur.", + sqlShortcutsAdd: "Əlavə et", + sqlShortcutsAddTitle: "SQL sürətli əməliyyatı əlavə et", + sqlShortcutsEditTitle: "SQL sürətli əməliyyatını redaktə et", + sqlShortcutsLabel: "Etiket", + sqlShortcutsLabelPlaceholder: "məs., Sətirləri say", + sqlShortcutsLabelRequired: "Etiket tələb olunur.", + sqlShortcutsSql: "SQL şablonu", + sqlShortcutsSqlPlaceholder: "SELECT COUNT(*) FROM ${table}", + sqlShortcutsVariableHint: "Seçilmiş cədvəlin adı üçün {token} dəyişənindən istifadə edin.", + sqlShortcutsEmpty: "Hələ SQL sürətli əməliyyatı yoxdur.", + sqlShortcutsUnbound: "Təyin edilməyib", + sqlShortcutsToggle: "SQL qısayolunu aktiv və ya deaktiv et", + sqlShortcutsDeleteConfirm: '"{name}" SQL qısayolu silinsin?', + syncWebDavTitle: "WebDAV sinxronlaşdırması", + syncWebDavDescription: "Yadda saxlanılmış SQL kitabxanası qeydləri daxil olmaqla DBX anlıq nüsxəsini WebDAV-uyğun saxlama xidmətinə yükləyin və ya oradan bərpa edin.", + syncWebDavWebDescription: "Veb rejimində DBX serveri brauzerin CORS məhdudiyyətləri olmadan WebDAV-a daxil olur. Yadda saxlanılmış parollar cari DBX instansiyasında qalır.", + syncEndpoint: "WebDAV URL-i", + syncUsername: "İstifadəçi adı", + syncPassword: "Parol", + syncPasswordPlaceholder: "Parolu daxil edin", + syncClearSavedPassword: "Yadda saxlanılmış parolu təmizlə", + syncRememberWebDavPassword: "WebDAV tətbiq parolunu yadda saxla", + syncSavedPassword: "(yadda saxlanılıb)", + syncRememberWebDavPasswordDescription: "Parol şifrələnir və yalnız cari DBX instansiyasında saxlanılır. WebDAV ilə sinxronlaşdırılmır və sinxronlaşdırma parolunu əvəz etmir.", + syncRemotePath: "Uzaq anlıq nüsxənin yolu", + syncRemotePathDescription: "Yükləmə zamanı DBX çatışmayan üst qovluqları yaradacaq.", + syncSecretNotice: "Standart olaraq DBX yalnız əlaqə məlumatlarını və parametrləri sinxronlaşdırır. Verilənlər bazası parolları, SSH parolları, proksi parolları, HTTP tunel tokenləri, əlaqə sətirləri və AI API açarları yerli olaraq qalır.", + syncSecrets: "Şifrələnmiş məxfi məlumatları sinxronlaşdır", + syncSecretsDescription: "Aktiv olduqda DBX verilənlər bazası parollarını, SSH parollarını, proksi parollarını, HTTP tunel tokenlərini və AI API açarlarını uzaq yaddaşa yükləməzdən əvvəl şifrələyir.", + syncSecretsSharedDescription: "WebDAV üçün bu parol daxil edilmiş giriş məlumatlarını şifrələyir. GitHub Gist və Gitee kod parçaları müstəqil şifrələmə və giriş məlumatları idarəetməsindən istifadə edir.", + syncSecretsPassphrase: "Sinxronlaşdırma parolu", + syncSecretsPassphraseDescription: "Bu parol yalnız həssas verilənləri şifrələmək və bərpa etmək üçün istifadə olunur. Cari DBX instansiyasında şifrələnir; digər instansiyalarda onu yenidən daxil edin.", + syncTest: "Yoxla", + syncUpload: "Yüklə", + syncDownload: "Endir", + syncTestSuccess: "WebDAV hədəfi əlçatandır.", + syncUploadSuccess: "{path} yoluna {bytes} bayt yükləndi.", + syncAutoUpload: "Anlıq nüsxələri avtomatik yüklə", + syncAutoUploadInterval: "Hər", + syncAutoUploadMinutes: "dəqiqə", + syncAutoUploadDescription: "DBX açıq olduğu müddətdə işləyir. Yerli yadda saxlanılmış SQL-in gözlənilmədən əvəz olunmaması üçün endirmələr yenə əl ilə təsdiq tələb edir.", + syncAutoUploadSuccess: "{path} yoluna {bytes} bayt avtomatik yükləndi.", + syncDownloadSuccess: "{path} yolundan {bytes} bayt endirildi və tətbiq edildi.", + syncSecretsApplied: "Şifrələnmiş məxfi məlumatlar bərpa edildi.", + syncSecretsSkipped: "Şifrələnmiş məxfi məlumatlar mövcud idi, lakin bərpa edilmədi.", + syncDownloadConfirm: "Uzaq DBX anlıq nüsxəsi endirilsin və tətbiq edilsin? Yerli metaverilənlər və yadda saxlanılmış SQL əvəz olunacaq.", + syncSnippetTitle: "GitHub / Gitee kod parçası sinxronlaşdırması", + syncSnippetDescription: "Eyni DBX anlıq nüsxəsini məxfi kod parçasında saxlayın. İlk yükləmə kod parçası yaradır və onun ID-sini yadda saxlayır.", + syncSnippetProvider: "Təchizatçı", + syncSnippetProviderGitee: "Gitee Snippets", + syncSnippetId: "Kod parçasının ID-si", + syncSnippetIdPlaceholder: "İlk yükləmə üçün boş buraxın", + syncSnippetToken: "Giriş tokeni", + syncSnippetRememberToken: "Bu cihazda şifrələnmiş şəkildə saxla", + syncSnippetTokenDescription: "GitHub tokenlərinə Gists üçün yazma icazəsi lazımdır. Tokenlər heç vaxt sinxronlaşdırma anlıq nüsxəsinə daxil edilmir.", + syncSnippetPassphrase: "Kod parçasının şifrələmə parolu", + syncSnippetPassphraseDescription: "Bütün GitHub/Gitee anlıq nüsxəsini şifrələyir. Yadda saxlanılmır və sinxronlaşdırılan giriş məlumatlarının parolundan ayrıdır.", + syncSnippetIncludeSecrets: "Yükləyərkən şifrələnmiş giriş məlumatlarını daxil et", + syncSnippetRestoreSecrets: "Endirərkən şifrələnmiş giriş məlumatlarını bərpa et", + syncSnippetTestSuccess: "Kod parçası sinxronlaşdırma hədəfi əlçatandır.", + syncSnippetUploadSuccess: "{id} kod parçasına {bytes} bayt yükləndi.", + syncSnippetDownloadSuccess: "{id} kod parçasından {bytes} bayt endirildi və tətbiq edildi.", + syncSnippetMigrateLegacy: "Köhnə kod parçasını köçür", + syncSnippetMigrateLegacyRequired: "Bu köhnə açıq mətnli kod parçası Köhnə kod parçasını köçür əməliyyatı ilə köçürülməlidir.", + syncSnippetMigrateLegacyConfirm: "DBX əvvəlcə şifrələnmiş əvəzləyici yaradacaq, sonra köhnə açıq mətnli {id} kod parçasını həmişəlik siləcək. Bunu geri qaytarmaq mümkün deyil. Davam edilsin?", + syncSnippetMigrateLegacySuccess: "Şifrələnmiş {id} kod parçası yaradıldı və köhnə açıq mətnli kod parçası çıxarıldı.", + syncSnippetMigrateLegacyCreated: "Şifrələnmiş {id} kod parçası yaradıldı.", + syncSnippetMigrateLegacyCleanupRequired: "Şifrələnmiş kod parçası yaradıldı, lakin köhnə {id} kod parçasını silmək mümkün olmadı. Onu əl ilə silin və açıqlanmış giriş məlumatlarını yeniləri ilə əvəz edin.", + syncSnippetRetryLegacyCleanup: "Köhnə məlumatların təmizlənməsinə yenidən cəhd et", + syncSnippetLegacyCleanupSuccess: "Köhnə açıq mətnli {id} kod parçası çıxarıldı.", + syncSnippetGuide: "Quraşdırma təlimatı", + apply: "Tətbiq et", + applyAndClose: "Tətbiq et və bağla", + reset: "Sıfırla", + resetDefaults: "Standart dəyərlərə sıfırla", + resetAllDefaults: "Bütün standart dəyərlərə sıfırla", + save: "Yadda saxla", + cancel: "Ləğv et", + executeMode: "İcra rejimi", + executeModeDescription: "SQL-i işlətmə qısayolu: {shortcut}. Standart olaraq bütün SQL-in, yoxsa kursorun olduğu əmrin icra olunmasını idarə edir.", + executeModeAll: "Bütün SQL-i icra et", + executeModeCurrent: "Kursorun olduğu əmri icra et", + defaultTransactionMode: "Standart tranzaksiya təsdiqləmə rejimi", + defaultTransactionModeDescription: + 'Yeni SQL redaktoru açıldıqda standart olaraq istifadə olunan tranzaksiya rejimi. "Əl ilə tranzaksiya" seçildikdə yeni redaktorlar əl ilə tranzaksiya rejimində açılır və dəyişiklikləri əl ilə təsdiqləmək və ya geri qaytarmaq tələb olunur; "Avtomatik təsdiqləmə" seçildikdə hər əmr avtomatik təsdiqlənir. Yalnız tranzaksiyaları dəstəkləyən verilənlər bazalarına (PostgreSQL, MySQL, Oracle, JDBC) tətbiq olunur.', + defaultTransactionModeAuto: "Avtomatik təsdiqləmə", + defaultTransactionModeManual: "Əl ilə tranzaksiya", + executeAllOnBlankLine: "Boş sətirlərdən bütün SQL-i icra et", + executeAllOnBlankLineDescription: "Cari əmr rejimində kursorun olduğu yerdə əmr olmadıqda bütün SQL-i icra et. Standart olaraq deaktivdir.", + showExecutionTargetPicker: "İcra hədəfi seçicisini göstər", + showExecutionTargetPickerDescription: "Aktiv olduqda seçim etmədən işlətmək cari əmrlə bütün SQL arasında seçim etməyə imkan verir.", + showStatementRunButtons: "Soldakı işlətmə düymələrini göstər", + showStatementRunButtonsDescription: "SQL redaktorunun kənar zolağında hər əmr üçün işlətmə düymələrini göstər. Deaktiv olduqda da klaviatura qısayolları və kontekst menyusundan icra işləyir.", + showLineNumbers: "Sətir nömrələrini göstər", + showLineNumbersDescription: "SQL redaktorunun kənar zolağında sətir nömrələrini göstər", + showCurrentStatementFrame: "Cari əmrin çərçivəsini göstər", + showCurrentStatementFrameDescription: "Aktiv olduqda SQL redaktoru cari icra oluna bilən əmrin ətrafında çərçivə çəkir; deaktiv olduqda çərçivə gizlədilir.", + showInsertValueHints: "INSERT dəyərləri üçün sütun ipuclarını göstər", + showInsertValueHintsDescription: "Aktiv olduqda SQL redaktoru INSERT ... VALUES və INSERT ... SELECT bəndlərində hər dəyərin və ya SELECT proyeksiyasının yanında sütun adı ipuclarını göstərir.", + previewStatementRunButton: "Əmri işlətmə düyməsinə önbaxış", + wordWrap: "Sətirləri bük", + wordWrapDescription: "Uzun sətirləri redaktorun eninə uyğun bük", + vimMode: "Vim rejimi", + vimModeDescription: "SQL redaktorunda Vim üslublu modal redaktədən istifadə et", + autoCloseBrackets: "Mötərizələri avtomatik bağla", + autoCloseBracketsDescription: "Açılış mötərizəsi və ya dırnaq yazılarkən bağlanış işarəsini avtomatik daxil et", + sqlCompletionSection: "SQL tamamlaması", + insertSpaceAfterCompletion: "Tamamlamadan sonra boşluq daxil et", + insertSpaceAfterCompletionDescription: "Açar söz, cədvəl və ya sütun tamamlamasını qəbul etdikdən sonra növbəti simvol imkan verirsə, boşluq əlavə et", + sortCompletionColumnsAlphabetically: "Tamamlama sütunlarını əlifba sırası ilə sırala", + sortCompletionColumnsAlphabeticallyDescription: "Cədvəl sahələrini verilənlər bazasındakı ilkin ardıcıllıqda saxlamaq üçün söndürün", + selectFirstCompletionOnOpen: "İlk tamamlamanı avtomatik seç", + selectFirstCompletionOnOpenDescription: "Aktiv olduqda siyahı açılarkən ilk namizəd seçilir və Enter və ya Tab onu qəbul edir. Deaktiv olduqda Enter yeni sətir daxil edir, Tab isə ilk namizədi qəbul edir.", + completionTriggerMode: "SQL tamamlamasının işə düşmə rejimi", + completionTriggerModeDescription: "SQL tamamlama namizədlərinin necə göstəriləcəyini seçin.", + completionTriggerModeManual: "Yalnız əl ilə", + completionTriggerModeManualDescription: "Namizədləri yalnız {shortcut} tamamlama qısayolu istifadə edildikdə göstər.", + completionTriggerModeRequirePrefix: "Yazılmış identifikator prefiksi", + completionTriggerModeRequirePrefixDescription: "Ən azı bir identifikator simvolu yazıldıqdan sonra namizədləri göstər.", + completionTriggerModePositional: "Ağıllı mövqe", + completionTriggerModePositionalDescription: "Cari SQL sintaksisi mövqeyinə əsasən namizədləri avtomatik göstər.", + sqlSemanticDiagnosticsEnabled: "SQL semantik diaqnostikası", + sqlSemanticDiagnosticsEnabledDescription: "Aktiv olduqda redaktor naməlum cədvəl və sütunlar kimi semantik problemləri bildirir. Böyük SQL üçün təhlili və metaverilən yoxlamalarını azaltmaq məqsədilə deaktiv edin.", + confirmDangerousSqlExecution: "Təhlükəli əməliyyatlardan əvvəl təsdiq et", + confirmDangerousSqlExecutionDescription: "Deaktiv olduqda təhlükəli SQL əmrləri, cədvəl sətirlərinin və ya sənədlərin silinməsi xəbərdarlıq dialoqu olmadan icra olunur.", + continueOnErrorOnBatch: "Xəta olduqda davam et", + continueOnErrorOnBatchDescription: "Aktiv olduqda çoxəmrli icra ilk xətada dayanmaq əvəzinə xətadan sonra davam edir.", + confirmUnsavedSqlClose: "Yadda saxlanılmamış SQL-i bağlamazdan əvvəl təsdiq et", + confirmUnsavedSqlCloseDescription: "Deaktiv olduqda yadda saxlanılmamış dəyişiklikləri olan SQL vərəqləri yadda saxlama təsdiqi dialoqu olmadan bağlanır və ya tətbiqdən çıxılır.", + appCloseUnsavedTabsMode: "Çıxış zamanı yadda saxlanılmamış SQL", + appCloseUnsavedTabsModeDescription: "SQL vərəqlərində yadda saxlanılmamış dəyişikliklər olduğu halda DBX-dən çıxarkən nə baş verəcəyini seçin.", + appCloseUnsavedTabsModePrompt: "Yadda saxlamaq lazım olub-olmadığını soruş", + appCloseUnsavedTabsModeKeepDrafts: "Çıx və qaralamaları saxla", + appCloseUnsavedTabsModeHint: 'Qaralamalar yadda saxlanmamış vərəqlər kimi saxlanılır və DBX-i növbəti dəfə başlatdıqda bərpa olunur. Bunun üçün "Başladıqda vərəqləri bərpa et" parametri "Vərəqləri saxlama" olaraq təyin edilməməlidir.', + appCloseDraftPersistFailed: "DBX açıq vərəqlərin qaralamalarını yadda saxlaya bilmədi, buna görə çıxış ləğv edildi. Disk sahəsini və fayl icazələrini yoxlayın, sonra yenidən cəhd edin. Təfərrüatlar: {message}", + savedSqlOpenTarget: "Yadda saxlanılmış SQL üçün standart hədəf", + savedSqlOpenTargetSaved: "Yadda saxlanılmış hədəf", + savedSqlOpenTargetSavedDescription: "SQL faylı ilə saxlanılmış əlaqədən, verilənlər bazasından və sxemdən istifadə et.", + savedSqlOpenTargetCurrent: "Cari vərəq", + savedSqlOpenTargetCurrentDescription: "Mövcud olduqda aktiv vərəqin əlaqəsindən, verilənlər bazasından, sxemindən və kataloqundan istifadə et; əks halda yadda saxlanılmış hədəfdən istifadə et.", + prefillNewQueryWithSelect: "Yeni sorğunu əvvəlcədən SELECT * ilə doldur", + prefillNewQueryWithSelectDescription: "Yeni sorğu yaradarkən aktiv cədvəl vərəqinə və ya yan paneldə seçilmiş cədvələ əsasən redaktoru əvvəlcədən SELECT * FROM ilə doldur.", + generateSqlIncludeDatabaseName: "Yaradılan SQL-ə verilənlər bazasının adını daxil et", + generateSqlIncludeDatabaseNameDescription: "Verilənlər bazası dəstəklədikdə yaradılan cədvəl SQL-i yalnız cədvəl adı əvəzinə database.table istifadə edir.", + generateSqlQuoteIdentifiers: "Yaradılan SQL-də identifikatorları dırnağa al", + generateSqlQuoteIdentifiersDescription: "Deaktiv olduqda yeni sorğudakı cədvəl istinadlarında dialektə xas dırnaqlar buraxılır. Ehtiyat sözlərin, xüsusi simvolların və hərf registrinə həssas adların işləməsi üçün dırnaqlar tələb oluna bilər.", + formatSqlOnSqlFileSave: "SQL fayllarını yadda saxlayarkən SQL-i formatla", + formatSqlOnSqlFileSaveDescription: "Yadda saxlanılmış SQL kitabxanası faylları və .sql faylları kimi saxlanılan sorğular daxil olmaqla SQL faylını yadda saxlayarkən SQL-i avtomatik formatla.", + clickTableNavigationTarget: "Cədvələ Ctrl+klik DDL-i açır", + clickTableNavigationTargetDescription: "Aktiv olduqda cədvəl adına Ctrl/Cmd+klik cədvəl strukturu redaktorunu (DDL) açır. Deaktiv olduqda cədvəl verilənləri görünüşünü açır.", + showTableDdlHoverPreview: "Kursor üzərinə gətirildikdə cədvəlin DDL-ini göstər", + showTableDdlHoverPreviewDescription: "SQL redaktorunda kursor cədvəl adının üzərinə gətirildikdə DDL önbaxışını göstər.", + sqlVariableSyntax: "SQL dəyişənlərinin və yer tutucularının əvəzlənməsi", + sqlVariableSyntaxDescription: "DBX-in SQL-i işlətməzdən əvvəl hansı dəyişən və yer tutucu sintaksislərini əvəzləyəcəyini verilənlər bazası növünə görə seçin. Hamısı standart olaraq aktivdir.", + sqlVariableSubstitutionEnabled: "Aktiv", + sqlVariableSyntax_positional: "Mövqeli yer tutucu", + sqlVariableSyntax_positionalDescription: "Hər mövqeli yer tutucunu ardıcıllıqla əvəz etmək üçün dəyər soruş.", + sqlVariableSyntax_named: "Adlandırılmış yer tutucu", + sqlVariableSyntax_namedDescription: "Adlandırılmış yer tutucuları əvəz etmək üçün dəyər soruş.", + sqlVariableSyntax_shell: "Əmr örtüyü üslublu yer tutucu", + sqlVariableSyntax_shellDescription: "Əmr örtüyü üslublu yer tutucuları əvəz etmək üçün dəyər soruş.", + sqlVariableSyntax_mybatis: "MyBatis üslublu yer tutucu", + sqlVariableSyntax_mybatisDescription: "MyBatis üslublu yer tutucuları əvəz etmək üçün dəyər soruş.", + sqlVariableSyntax_sqlserver: "SQL Server üslublu yer tutucu", + sqlVariableSyntax_sqlserverDescription: "SQL Server üslublu yer tutucuları əvəz etmək üçün dəyər soruş (sessiya dəyişənləri ilə toqquşa bilər).", + sqlVariableSyntax_atSet: "Sətirdaxili dəyişənlərin açılması", + sqlVariableSyntax_atSetDescription: "İşlətməzdən əvvəl sətirdaxili dəyişən elanlarını aç və dəyərlərini yerinə qoy.", + autoAliasTables: "Cədvəl ləqəblərini avtomatik əlavə et", + autoAliasTablesDescription: "FROM və ya JOIN daxilində cədvəl tamamlaması seçilərkən order_items AS oi kimi yaradılmış ləqəb daxil et.", + redisKeyTemplatesSection: "Redis", + redisKeyTemplates: "Açar axtarışı şablonları", + redisKeyTemplatesPlaceholder: "Nümunə:\nuser:{'{'}$userId{'}'}\nv3:adui:{'{'}$positionID{'}'}", + redisKeyTemplatesDescription: "Hər sətirdə bir şablon. Redis əlaqəsinin öz şablonları olmadıqda ehtiyat təkliflər kimi istifadə olunur.", + redisScanPageSize: "Redis skan sayı", + redisScanPageSizeDescription: "Açarlara baxarkən hər Redis SCAN səhifəsində tələb olunan açarlar.", + redisScanPageSizeOption: "{count} açar", + exportBatchSize: "İxrac toplusunun ölçüsü", + dateTimeSection: "Tarix və vaxt", + globalDateTimeDisplayFormat: "Qlobal göstərmə formatı", + globalDateTimeDisplayFormatDescription: "Bütün verilənlər bazalarında sütuna məxsus formatlayıcısı olmayan tarix və vaxt sütunlarına tətbiq olunur.", + globalDateTimeExportFormat: "Qlobal ixrac formatı", + globalDateTimeExportFormatDescription: "CSV, Excel, JSON, Markdown və mətn ixraclarında tarix və vaxt sütunlarını vahid qaydada formatlayır.", + globalDateTimeImportFormat: "Qlobal idxal formatı", + globalDateTimeImportFormatDescription: "İdxal edilən tarix və vaxt dəyərlərini bu formatla təhlil edir. Ümumi formatları avtomatik aşkarlamaq üçün boş buraxın.", + dateTimeFormatRaw: "Verilənlər bazasının dəyərini saxla", + dateTimeFormatAuto: "Avtomatik aşkar et", + dateTimeFormatSearchPlaceholder: "Format seçin və ya daxil edin", + dateTimeFormatEmpty: "Fərdi tarix və vaxt formatı daxil edin", + exportBatchSizeDescription: "Verilənlər ixrac edilərkən hər topluda alınan sətirlər (100-100000).", + exportRowLimitEnabled: "İxrac edilən sətirləri məhdudlaşdır", + exportRowLimitEnabledDescription: "Aktiv olduqda sorğu nəticələrinin və cədvəl məlumatlarının ixracı aşağıdakı sətir həddinə çatdıqda dayanır.", + exportRowLimit: "Məlumat ixracı üçün sətir həddi", + exportRowLimitDescription: "Sorğu nəticələrinin və cədvəl məlumatlarının ixracı üçün maksimum sətir sayı.", + exportRowLimitUnlimited: "Məhdudiyyətsiz", + queryExportKeysetOptimizationEnabled: "Açar dəsti optimallaşdırmasını sına", + queryExportKeysetOptimizationEnabledDescription: "Yalnız etibarlı şəkildə tanınan tək cədvəlli sorğulara tətbiq edilir; mürəkkəb sorğular avtomatik olaraq adi üsula qayıdır.", + exportSection: "İxrac", + csvQuoteMode: "CSV sahələrinin dırnaqları", + csvQuoteModeDescription: "CSV sahələrində qoşa dırnaqların necə istifadə olunacağını seçin.", + csvQuoteModeAll: "Bütün sahələr", + csvQuoteModeNecessary: "Yalnız lazım olduqda", + performanceSection: "Məhsuldarlıq", + shortcutExecuteSql: "SQL-i icra et", + shortcutExecuteSqlInNewResultTab: "SQL-i yeni nəticə vərəqində icra et", + shortcutFind: "Tap", + shortcutReplace: "Əvəz et", + shortcutSaveSql: "SQL-i yadda saxla", + shortcutAcceptCompletion: "Tamamlamanı qəbul et", + shortcutTriggerCompletion: "Tamamlamanı başlat", + shortcutFormatSql: "SQL-i formatla", + shortcutExpandSelectStar: "* işarəsini sütunlarla əvəz et", + shortcutToggleLineComment: "Sətir şərhini aç/bağla", + shortcutToggleBlockComment: "Blok şərhini aç/bağla", + shortcutIndentMore: "Girintini artır", + shortcutIndentLess: "Girintini azalt", + shortcutInsertLineBelow: "Aşağıya sətir əlavə et", + shortcutJoinLines: "Sətirləri birləşdir", + shortcutDuplicateLine: "Cari sətrin surətini yarat", + shortcutDeleteLine: "Cari sətri sil", + shortcutMoveLineUp: "Sətri yuxarı köçür", + shortcutMoveLineDown: "Sətri aşağı köçür", + shortcutCopyLineUp: "Sətri yuxarı kopyala", + shortcutCopyLineDown: "Sətri aşağı kopyala", + shortcutUndo: "Geri al", + shortcutRedo: "Təkrar et", + shortcutSelectAll: "Hamısını seç", + shortcutAddNextSelectionOccurrence: "Növbəti uyğunluğu əlavə et", + shortcutSelectAllSelectionOccurrences: "Bütün uyğunluqları seç", + shortcutExtendSelection: "Seçimi genişləndir", + shortcutEditTableStructure: "Cədvəlin quruluşunu redaktə et", + shortcutCopyCurrentRow: "Cari məlumat sətrini kopyala", + shortcutDeleteCurrentRow: "Cari məlumat sətrini sil", + shortcutGoToColumn: "Sütuna keç", + shortcutGoToFirstPage: "İlk səhifə", + shortcutGoToPreviousPage: "Əvvəlki səhifə", + shortcutGoToNextPage: "Növbəti səhifə", + shortcutGoToLastPage: "Son səhifə", + shortcutNewQuery: "Yeni sorğu", + shortcutOpenSettings: "Parametrləri aç", + shortcutCloseTab: "Vərəqi bağla", + shortcutFocusSearch: "Cari görünüşün axtarış sahəsinə keç", + shortcutQuickOpen: "Sürətli açılış (bütün verilənlər bazası obyektlərini axtar)", + shortcutNavigateTabHistoryBack: "Əvvəl baxılmış vərəqə qayıt", + shortcutTabSwitcher: "Vərəq dəyişdiricisi (göstərmək üçün basılı saxla, keçmək üçün burax)", + shortcutNavigateTabHistoryForward: "Növbəti baxılmış vərəqə keç", + shortcutSwitchToPreviousTab: "Əvvəlki vərəqə keç", + shortcutSwitchToNextTab: "Növbəti vərəqə keç", + shortcutSwitchToTab1: "1-ci vərəqə keç", + shortcutSwitchToTab2: "2-ci vərəqə keç", + shortcutSwitchToTab3: "3-cü vərəqə keç", + shortcutSwitchToTab4: "4-cü vərəqə keç", + shortcutSwitchToTab5: "5-ci vərəqə keç", + shortcutSwitchToTab6: "6-cı vərəqə keç", + shortcutSwitchToTab7: "7-ci vərəqə keç", + shortcutSwitchToTab8: "8-ci vərəqə keç", + shortcutSwitchToTab9: "9-cu vərəqə keç", + shortcutZoomInUi: "İnterfeysi böyüt", + shortcutZoomOutUi: "İnterfeysi kiçilt", + shortcutResetUiZoom: "İnterfeysin miqyasını sıfırla", + shortcutRefreshData: "Məlumatları yenilə", + shortcutToggleResultsPane: "Nəticələr panelini aç/bağla", + shortcutToggleTranspose: "Transpozisiya görünüşünü aç/bağla", + shortcutCancelSearch: "Axtarışı ləğv et", + shortcutToggleSidebar: "Yan paneli aç/bağla", + shortcutToggleZenMode: "Zen rejimini aç/bağla", + shortcutCopySidebarSelection: "Yan paneldəki seçimi kopyala", + shortcutPasteSidebarSelection: "Yan panelə yerləşdir", + shortcutEditSidebarConnection: "Yan paneldəki əlaqəni redaktə et", + shortcutOpenDataInNewTab: "Məlumatları yeni vərəqdə aç (siçan klikləməsi)", + shortcutViewTableDdl: "Cədvəlin DDL-inə bax", + shortcutSendSelectionToAi: "Seçimi AI-yə göndər", + shortcutToggleAiPanel: "AI panelini aç/bağla", + shortcutSqlIntentionActions: "SQL niyyət əməliyyatları (* işarəsini genişləndir / identifikatoru tam adla göstər)", + intentionExpandWildcard: "* işarəsini sütun siyahısı ilə əvəz et", + intentionQualifyIdentifier: "İdentifikatoru tam adla göstər", + intentionUnqualifyIdentifier: "İdentifikatoru qısa adla göstər", + intentionBatchQualifyIdentifiers: "İdentifikatorları toplu şəkildə tam adla göstər", + shortcutToggleFold: "Qatlamanı aç/bağla", + shortcutScopeGlobal: "Qlobal", + shortcutScopeEditor: "SQL redaktoru", + shortcutScopeGrid: "Məlumat cədvəli", + shortcutScopeSearch: "Axtarış sahələri", + shortcutScopeSidebar: "Yan panel", + shortcutPressShortcut: "Qısayol düymələrini bas", + shortcutSearchPlaceholder: "Qısayolları axtar", + shortcutSearchNoResults: "Axtarışınıza uyğun qısayol yoxdur.", + shortcutConflict: "Bu qısayol eyni əhatə dairəsində başqa əməliyyatla ziddiyyət təşkil edir.", + shortcutClear: "Qısayolu təmizlə", + preview: "Canlı önbaxış", + previewSyntaxErrorHint: "Yalnız oxumaq üçün önbaxış. Nümunə SQL-dəki FOM yazı xətası qəsdəndir və sintaksis xətalarının vurğulanmasını göstərir.", + customTheme: "Fərdi tema", + customThemeConfigure: "Fərdi temanı tənzimlə", + customThemeTitle: "Fərdi tema konfiqurasiyası", + customThemeMyThemes: "Temalarım", + customThemeNewTheme: "Yeni tema", + customThemeVisualEdit: "Vizual redaktor", + customThemeJsonConfig: "JSON konfiqurasiyası", + customThemeLivePreview: "Canlı önbaxış", + customThemePreviewExample: "-- Sorğu nümunəsi", + customThemePreset: "Hazır tema", + customThemeSelectPreset: "Hazır tema seçin...", + customThemeApply: "Tətbiq et", + customThemePasteImport: "Yerləşdirərək idxal et", + customThemeExportJson: "JSON-u ixrac et", + customThemeSaveAndApply: "Yadda saxla və tətbiq et", + customThemeKeyword: "Açar söz", + customThemeField: "Sahə/dəyişən", + customThemeFunction: "Funksiya", + customThemeString: "Mətn sətri", + customThemeNumber: "Ədəd", + customThemeComment: "Şərh", + customThemeTable: "Cədvəl", + customThemeOperator: "Operator", + customThemeType: "Növ", + customThemeBuiltin: "Daxili", + customThemeBackground: "Arxa plan", + customThemeForeground: "Ön plan", + customThemeDefaultName: "Fərdi tema", + customThemeCopySuffix: " surəti", + customThemeApplied: '"{name}" rəng sxemi tətbiq edildi', + customThemeKeepOne: "Ən azı bir tema saxlayın", + customThemeJsonError: "JSON formatı yanlışdır, yoxlayın", + jdbcPlugin: "DBX JDBC plagini", + jdbcPluginInstall: "JDBC plaginini quraşdır", + jdbcPluginInstallSuccess: "JDBC plagini quraşdırıldı", + jdbcPluginUpdate: "Yenilə", + jdbcPluginUninstall: "Quraşdırmanı sil", + jdbcPluginUninstallSuccess: "JDBC plagini silindi", + jdbcPluginInstalled: "Quraşdırılıb: v{version}", + jdbcPluginIncompatible: "Uyğun olmayan protokol", + jdbcPluginNotInstalled: "Quraşdırılmayıb", + jdbcDrivers: "JDBC drayver JAR-ları", + jdbcImport: "JAR idxal et", + jdbcImportPath: "İdxal yolu", + jdbcDriverPathPlaceholder: "/path/to/driver.jar", + jdbcImportSuccess: "{count} drayver faylı idxal edildi", + jdbcDeleteSuccess: "Drayver çıxarıldı", + jdbcNoDrivers: "Hələ JDBC drayveri idxal edilməyib.", + mcpTitle: "MCP serveri", + mcpDescription: "Claude Code, Cursor və digər agentlərin istifadə etdiyi DBX MCP Server quraşdırmasını və versiyasını yoxlayın.", + mcpChecking: "Yoxlanılır", + mcpStatusUnknown: "Yoxlanılmayıb", + mcpStatusError: "Yoxlama uğursuz oldu", + mcpReady: "Hazırdır", + mcpNotInstalled: "Quraşdırılmayıb", + mcpUpdateAvailable: "Yeniləmə mövcuddur", + mcpCurrent: "Cari versiya", + mcpLatest: "Ən son versiya", + mcpVersionMissing: "Qlobal quraşdırma aşkarlanmadı", + mcpVersionUnknown: "Naməlum", + mcpAvailable: "Mövcuddur", + mcpUnavailable: "Əlçatan deyil", + mcpBinPath: "Əmr yolu", + mcpInstallCommand: "Quraşdırma əmri", + mcpUpdateCommand: "Yeniləmə əmri", + mcpUninstallCommand: "Quraşdırmanı silmə əmri", + mcpInstallButton: "Quraşdır", + mcpUpdateButton: "Yenilə", + mcpUpToDate: "Ən son versiyadır", + mcpInstalling: "Quraşdırılır...", + mcpInstallSuccess: "Quraşdırma uğurla tamamlandı", + mcpInstallFailed: "Quraşdırma uğursuz oldu", + mcpUninstallButton: "Quraşdırmanı sil", + mcpUninstalling: "Quraşdırma silinir...", + mcpUninstallConfirm: "DBX MCP Server silinsin? Tənzimlənmiş MCP müştəriləri artıq onu başlada bilməyəcək.", + mcpUninstallFailed: "Quraşdırmanın silinməsi uğursuz oldu: {error}", + mcpConfig: "MCP konfiqurasiyası", + mcpConfigOptionsHint: + "DBX hər MCP müştərisi üçün əlaqələrə girişi və icra icazələrini mərkəzləşdirilmiş şəkildə idarə edir. Yaradılan konfiqurasiyalar yalnız MCP serverini başlatmaq və bu DBX nüsxəsinə qoşulmaq üçün lazım olan icra mühiti parametrlərini ehtiva edir; icazə və ya əlaqə əhatəsi dəyişənlərini ehtiva etmir.", + mcpScopeConnection: "MCP üçün icazə verilən əlaqələr", + mcpScopeConnectionDescription: "DBX yalnız seçilmiş əlaqələri MCP-yə təqdim edir. Dəyişikliklər hər MCP müştərisinə tətbiq edilir.", + mcpScopeMode: "Əlaqə əhatəsi rejimi", + mcpScopeModeAll: "Bütün əlaqələr", + mcpScopeModeAllDescription: "Gələcək əlaqələri avtomatik daxil edir", + mcpScopeModeSelected: "Müəyyən əlaqələr", + mcpScopeModeSelectedDescription: "Yalnız ayrıca əlavə edilmiş əlaqələr", + mcpScopeAllowedPane: "İcazə verilənlər", + mcpScopeAvailablePane: "Mövcud olanlar", + mcpScopeAddAll: "Hamısını əlavə et", + mcpScopeRemoveAll: "Hamısını çıxar", + mcpScopeAddMatches: "Uyğun gələnləri əlavə et ({count})", + mcpScopeRemoveMatches: "Uyğun gələnləri çıxar ({count})", + mcpScopeAddConnection: "{name} əlaqəsinə MCP girişinə icazə ver", + mcpScopeRemoveConnection: "{name} əlaqəsinə MCP girişini ləğv et", + mcpScopeAvailableEmpty: "Əlavə edilə bilən əlaqə yoxdur", + mcpScopeAllowedEmpty: "Hazırda heç bir əlaqəyə icazə verilməyib", + mcpScopeUnavailableGroup: "Əlçatan olmayan əlaqələr ({count})", + mcpScopeRemoveUnavailableConnection: "Əlçatan olmayan {id} əlaqəsini icazə siyahısından çıxar", + mcpScopeUpdatedAnnouncement: "MCP hazırda {total} mövcud əlaqədən {selected} əlaqəyə icazə verir", + mcpConnectionSearchPlaceholder: "Ad, növ, ünvan, verilənlər bazası və ya əlaqə ID-si üzrə axtar", + mcpConnectionSearchEmpty: "Uyğun əlaqə yoxdur", + mcpConnectionListEmpty: "Mövcud əlaqə yoxdur", + mcpScopeAllAction: "Hamısına icazə ver", + mcpScopeNoneAction: "Hamısını təmizlə", + mcpScopeAllSummary: "Bütün {count} əlaqə", + mcpScopeSelectedSummary: "{selected}/{total} seçilib", + mcpScopeAllConnections: "Bütün əlaqələr", + mcpScopeNoConnections: "Əlaqə yoxdur", + mcpScopeConnectionUnavailable: "Əvvəllər seçilmiş əlaqə (əlçatan deyil)", + mcpScopeConnectionUnavailableDescription: "Seçilmiş {count} əlaqə artıq mövcud deyil. Onların ID-ləri icazə siyahısında qalır, lakin onlar üçün heç bir cari əlaqə təqdim edilmir.", + mcpScopeSelectedCount: "{count} əlaqə seçilib", + mcpCodexConfig: "Codex konfiqurasiyası", + mcpCodexConfigPath: "Codex ~/.codex/config.toml və ya layihə səviyyəsində .codex/config.toml faylından istifadə edə bilər.", + mcpDeepSeekHarnessConfigPath: + "dsh web üçün bu insert qeydini $DSH_HOME/profiles/web/cordis.patch.yml faylına birləşdirin; başqa profil üçün web hissəsini dəyişin. Mövcud düzəliş qeydlərinin üzərinə yazmayın. dsh web --dump-config ilə yoxlayın və ya HMR-in dəyişikliyi yenidən yükləməsinə imkan verin.", + mcpCursorConfigPath: "Cursor layihədə .cursor/mcp.json və ya qlobal səviyyədə ~/.cursor/mcp.json faylından istifadə edə bilər.", + mcpCodeBuddyConfigPath: "CodeBuddy Code qlobal səviyyədə ~/.codebuddy/.mcp.json və ya layihədə .mcp.json faylından istifadə edə bilər.", + mcpZCodeConfigPath: "ZCode: Parametrlər > MCP serverləri > Yeni MCP serveri > Tam konfiqurasiya; İstifadəçi və ya İş sahəsi əhatəsini seçin, sonra JSON konfiqurasiyasını yerləşdirin.", + mcpTraeConfigPath: "TRAE: Parametrlər > MCP > Əlavə et > Əl ilə əlavə et, sonra JSON konfiqurasiyasını yerləşdirin.", + mcpQoderConfigPath: "Qoder: Parametrlər > MCP > Əl ilə əlavə et, sonra JSON konfiqurasiyasını yerləşdirin.", + mcpCherryStudioConfigPath: "Cherry Studio: Parametrlər > MCP serverləri > Server əlavə et > JSON idxal et, sonra konfiqurasiyanı yerləşdirin.", + mcpVsCodeConfigPath: "VS Code/Copilot iş sahəsində .vscode/mcp.json və ya istifadəçi profilində mcp.json faylından istifadə edə bilər.", + mcpWindsurfConfigPath: "Windsurf ~/.codeium/windsurf/mcp_config.json faylından istifadə edə bilər.", + mcpOpenCodeConfigPath: "Qlobal səviyyədə ~/.config/opencode/opencode.json və ya layihə səviyyəsində opencode.json.", + mcpPiConfigPath: "Əvvəlcə Pi MCP adapter plaginini quraşdırın: pi install npm:pi-mcp-adapter. Sonra ~/.pi/agent/mcp.json (qlobal) və ya .mcp.json (layihə) faylında yadda saxlayın, yoxlamaq üçün /mcp, Pi-də tətbiq etmək üçün isə /reload əmrini işlədin.", + mcpExecutionMode: "MCP üçün qlobal standart icazə", + mcpExecutionModeDescription: "Əlaqə və ya verilənlər bazası icazəsi tənzimlənmədikdə istifadə olunan standartı təyin edir. Əlaqənin standartları və verilənlər bazası parametrləri əhatə dairəsinə görə onu əvəz edə bilər.", + mcpExecutionModeReadOnly: "Yalnız oxuma", + mcpExecutionModeSafeWrite: "Məlumatları oxuma/yazma", + mcpExecutionModeRecommended: "Tövsiyə olunur", + mcpExecutionModeHighRiskWrite: "Tam giriş", + mcpExecutionModeReadOnlyDescription: "Yalnız DBX-in oxuma kimi təsnif etdiyi sorğulara icazə verir; tanınan verilənlər bazası yazma əməliyyatlarını və əlaqə dəyişikliklərini bloklayır. Verilənlər bazası hesabının icazələri son qəti sərhəd olaraq qalır.", + mcpExecutionModeSafeWriteDescription: "Adi INSERT, süzgəcli UPDATE/DELETE, əhatəsi yoxlanıla bilən MongoDB dəyişiklikləri və adi Redis yazma əməliyyatlarına və ya açıq göstərilmiş açarın silinməsinə icazə verir; bütün cədvəli əhatə edən və struktur dəyişikliklərini bloklayır.", + mcpExecutionModeHighRiskWriteDescription: + "Məlumatların oxunması/yazılması ilə yanaşı, bütün cədvəli əhatə edən dəyişikliklərə, DDL-ə, TRUNCATE-ə, verilənlər bazasının təmizlənməsinə və digər yüksək riskli əməliyyatlara icazə verir. İstehsal mühitinin və əlaqənin yalnız oxuma mühafizəsi qüvvədə qalır.", + mcpExecutionModeHighRiskConfirm: "Tam giriş bütün cədvəli əhatə edən dəyişikliklərə, DDL-ə, TRUNCATE-ə, verilənlər bazasının təmizlənməsinə və digər yüksək riskli əməliyyatlara icazə verir. Aktivləşdirilsin?", + mcpCapabilityTitle: "İmkanların müqayisəsi", + mcpCapabilityDescription: "Bunlar nümunə əməliyyatlardır; DBX-in etibarlı şəkildə təsnif edə bilmədiyi sorğular tam giriş tələb edir.", + mcpCapabilityOperation: "İmkan", + mcpCapabilityRead: "Sorğular və oxuma əməliyyatları", + mcpCapabilityScopedMutation: "Əhatəsi məhdud məlumat dəyişiklikləri (INSERT, süzgəcli UPDATE/DELETE, açıq göstərilmiş açarların yazılması/silinməsi)", + mcpCapabilityBroadMutation: "Bütün cədvəli əhatə edən yeniləmə/silmə və məlumatların təmizlənməsi", + mcpCapabilitySchemaAdmin: "DDL, struktur dəyişiklikləri və yüksək riskli idarəetmə", + mcpCapabilityConnectionManagement: "MCP əlaqələrini əlavə et/çıxar", + mcpCapabilityAllowed: "İcazə verilir", + mcpCapabilityBlocked: "Bloklanıb", + mcpQueryTimeout: "Sorğunun gözləmə müddəti (saniyə)", + mcpQueryTimeoutDescription: "Əlaqənin sorğu gözləmə müddətini götürmək üçün boş saxlayın. 0 = məhdudiyyət yoxdur. Müsbət dəyər hər MCP sorğusu üçün əlaqə parametrini əvəz edir.", + mcpQueryTimeoutInvalid: "Saniyələrin sayını mənfi olmayan tam ədəd kimi daxil edin və ya əlaqə parametrini götürmək üçün boş saxlayın.", + mcpCapabilityAlwaysEnforced: "Hər rejimdə əlaqə icazə siyahısı, əlaqənin yalnız oxuma mühafizəsi, istehsal mühitinin mühafizəsi və verilənlər bazası hesabının icazələri qüvvədə qalır.", + mcpPolicySaveFailed: "MCP giriş siyasətini yadda saxlamaq mümkün olmadı: {error}", + mcpPolicyLoadFailed: "MCP giriş siyasətini yükləmək mümkün olmadı: {error}", + mcpDetectionTiming: "Bu səhifə açıldıqda DBX avtomatik yoxlayır; yeniləmək üçün Yenidən yoxla düyməsindən istifadə edin.", + mcpNpmBoundary: "DBX MCP-nin vəziyyətini yoxlayır; quraşdırma, yeniləmə və quraşdırmanın silinməsi aşkarlanmış npm və ya pnpm icra mühiti vasitəsilə həyata keçirilir.", + mcpRefresh: "Yenidən yoxla", + mcpGuide: "MCP təlimatı", + mcpAuthTitle: "MCP səlahiyyətləndirməsi", + mcpAuthDescription: "Səlahiyyətləndirməni ardıcıllıqla tamamlayın: qlobal standartı təyin edin, qrupları və əlaqələri seçin, verilənlər bazalarını məhdudlaşdırın, sonra yekun siyasəti nəzərdən keçirin.", + mcpAuthStepsLabel: "MCP səlahiyyətləndirmə addımları", + mcpAuthStepConnectionsTitle: "Qruplar və əlaqələr", + mcpAuthStepConnectionsDescription: "MCP-nin nəyi görə biləcəyini seçin və əlaqə icazələrini təyin edin", + mcpAuthStepDatabasesTitle: "Verilənlər bazası əhatəsi", + mcpAuthStepDatabasesDescription: "Hər əlaqənin verilənlər bazalarını məhdudlaşdırın və verilənlər bazası icazələrini təyin edin", + mcpAuthStepOverridesTitle: "Standart icazələr", + mcpAuthStepOverridesDescription: "Bütün sonrakı əhatə dairələri üçün qlobal standartı təyin edin", + mcpAuthStepCapabilitiesTitle: "Xülasə və baxış", + mcpAuthStepCapabilitiesDescription: "Qüvvədə olan icazələri nəzərdən keçirin, alətləri seçin və təsdiqləyin", + mcpAuthStepRegionLabel: "Addım {step}: {title}", + mcpAuthPreviousStep: "Əvvəlki", + mcpAuthNextStep: "Növbəti", + mcpAuthStepProgress: "Addım {current}/{total}", + mcpResourceScopeTitle: "MCP-yə görünən əlaqələr", + mcpResourceScopeDescription: "Dinamik əhatə üçün qrupları, dəqiq istisnalar üçün isə ayrıca əlaqələri seçin.", + mcpResourceScopeModeCustom: "Fərdi əhatə", + mcpResourceScopeAllSummary: "Bütün {count} əlaqə", + mcpResourceScopeCustomSummary: "{effective} qüvvədə olan · {groups} qrup qaydası · {connections} birbaşa qayda", + mcpResourceScopeSearch: "Qrupları və ya əlaqələri axtar", + mcpResourceScopeTreeLabel: "MCP əlaqə resursları ağacı", + mcpResourceScopeInherited: "{group} qrupundan", + mcpResourceScopeDynamic: "Dinamik", + mcpResourceScopeDirect: "Birbaşa", + mcpResourceScopePartial: "Qismən icazə verilib", + mcpResourceScopeEmpty: "Uyğun qrup və ya əlaqə yoxdur.", + mcpResourceScopeHint: "Seçilmiş qrup özünün cari və gələcək alt əlaqələrini əhatə edir. Birbaşa seçimlər müstəqil istisnalardır.", + mcpResourceScopeAllConfirm: "Bütün əlaqələrə keçid cari fərdi qrup və əlaqə qaydalarını silir. Davam edilsin?", + mcpPermissionGlobalDefaultHint: "Qrup, əlaqə və verilənlər bazası icazələri bu standartı əvəz edir, lakin əlaqələrin görünmə əhatəsini heç vaxt genişləndirmir.", + mcpDatabasePolicyHighRiskConfirm: "Bu verilənlər bazası üçün yüksək riskli yazma əməliyyatlarına icazə verilsin? Əlaqənin yalnız oxuma və istehsal mühiti mühafizəsi qüvvədə qalır.", + mcpDatabaseScopeClearsPermissionExceptions: "Bu verilənlər bazası əhatəsinin dəyişdirilməsi onun verilənlər bazası icazə istisnalarını siləcək. Davam edilsin?", + mcpPerPage: "Hər səhifədə", + mcpPreviousPage: "Əvvəlki səhifə", + mcpNextPage: "Növbəti səhifə", + mcpDatabaseScopeTitle: "Əlaqələr və verilənlər bazası əhatəsi", + mcpDatabaseScopeDescription: "Solda MCP-yə təqdim edilən əlaqəni seçin, sonra həmin əlaqənin giriş əldə edə biləcəyi verilənlər bazalarını məhdudlaşdırın. Verilənlər bazası adları tam uyğunluq əsasında müqayisə edilir.", + mcpDatabaseScopeEmptyHint: "Əvvəlcə 'Əlaqə əhatəsi' bölməsində ən azı bir əlaqəyə icazə verin.", + mcpDatabaseScopeAllowedConnections: "İcazə verilən əlaqələr", + mcpDatabaseScopeSummaryAll: "Bütün verilənlər bazaları", + mcpDatabaseScopeSummaryNone: "Verilənlər bazasına giriş yoxdur", + mcpDatabaseScopeSummarySelected: "{count} seçilib", + mcpDatabaseScopePermissionNote: "Seçilmiş əhatə əlaqənin DBX-dəki mövcud verilənlər bazası icazələrini dəyişmir.", + mcpDatabaseLoadButton: "Resurs siyahısını yüklə", + mcpDatabaseScopeAriaLabel: "Verilənlər bazasına giriş əhatəsi", + mcpDatabaseScopeAllTitle: "Bütün verilənlər bazaları", + mcpDatabaseScopeAllDescription: "Cari giriş əhatəsini saxla", + mcpDatabaseScopeSelectedTitle: "Yalnız seçilmiş verilənlər bazaları", + mcpDatabaseScopeSelectedDescription: "Yalnız işarələnmiş elementləri təqdim et", + mcpDatabaseScopeNoneTitle: "Giriş yoxdur", + mcpDatabaseScopeNoneDescription: "Qaydaları saxla, lakin bütün verilənlər bazalarına girişi rədd et", + mcpDatabaseScopeSelectedSummary: "{count} verilənlər bazasına icazə verilib. İşarələnməmiş verilənlər bazaları və bazalararası sorğular MCP serveri tərəfindən rədd edilir.", + mcpDatabasePolicyInherit: "Əlaqədən götür", + mcpDatabasePolicySetting: "Verilənlər bazasının üstün parametr dəyəri", + mcpDatabasePolicyEffective: "Qüvvədə olan: {mode}", + mcpPermissionPreviewTitle: "İcazələrə önbaxış", + mcpPermissionPreviewDescription: "İcazələrin üstünlük sırası: verilənlər bazası, əlaqə, ən yaxın qrup, üst qrup, sonra qlobal standart.", + mcpPermissionPreviewConnection: "Əlaqə", + mcpPermissionPreviewDatabase: "Verilənlər bazası", + mcpPermissionPreviewConnectionDefault: "Əlaqənin standartı", + mcpPermissionPreviewGroupDefault: "Qrupun standartı", + mcpGroupScopeTitle: "Əlaqə qrupları", + mcpGroupScopeDescription: "Qrupun seçilməsi onun bütün cari və gələcək alt əlaqələrini dinamik olaraq təqdim edir. Digər əlaqələr yenə də ayrıca əlavə edilə bilər.", + mcpGroupScopeSelected: "{count} qrup seçilib", + mcpGroupScopeSearch: "Qrup yollarını axtar", + mcpGroupScopeNoResults: "Uyğun qrup tapılmadı.", + mcpGroupScopeEmpty: "Tənzimlənəcək əlaqə qrupu yoxdur.", + mcpGroupPolicyTitle: "Qrupun standart icazələri", + mcpGroupPolicyDescription: "Alt qrup üst qrupun parametrini əvəz edir; əlaqə və verilənlər bazası parametrləri qrupun standartını əvəz edə bilər.", + mcpGroupPolicyInherit: "Üst qrupdan və ya qlobal parametrdən götür", + mcpGroupPolicyHighRiskConfirm: "Bu qrup üçün yüksək riskli yazma əməliyyatlarına icazə verilsin? Əlaqənin yalnız oxuma və istehsal mühiti mühafizəsi qüvvədə qalır.", + mcpPermissionPreviewDatabaseOverride: "Verilənlər bazasının üstün parametr dəyəri", + mcpPermissionPreviewEffective: "Qüvvədə olan", + mcpPermissionPreviewResource: "Resurs", + mcpPermissionPreviewSource: "Mənbə", + mcpPermissionSourceDatabase: "Verilənlər bazası istisnası", + mcpPermissionSourceConnection: "Əlaqə istisnası", + mcpPermissionSourceGroup: "Qrup: {group}", + mcpPermissionSourceGlobal: "Qlobal standart", + mcpPermissionPreviewEmpty: "Əvvəlcə ən azı bir əlaqəyə icazə verin və onun verilənlər bazası əhatəsini tənzimləyin.", + mcpPermissionPreviewSearchPlaceholder: "Əlaqələri və ya verilənlər bazalarını axtar", + mcpPermissionPreviewSearchNoResults: "Uyğun əlaqə və ya verilənlər bazası tapılmadı.", + mcpDatabaseSearchPlaceholder: "Yüklənmiş verilənlər bazalarını süzgəcdən keçir", + mcpDatabaseManualPlaceholder: "Verilənlər bazasının adını əl ilə əlavə et", + mcpDatabaseLoadFailed: "Verilənlər bazalarını yükləmək mümkün olmadı: {error}. Verilənlər bazalarının dəqiq adlarını əl ilə əlavə edə bilərsiniz.", + mcpDatabaseEmptyHint: "Verilənlər bazası siyahısını əldə etmək üçün 'Resurs siyahısını yüklə' düyməsinə klikləyin və ya icazə verilən verilənlər bazalarını əl ilə əlavə edin.", + mcpManagementAccess: "Giriş üsulları", + mcpManagementPermissions: "İcazələrin idarə edilməsi", + mcpTransportLabel: "Əlaqə növü", + mcpRuntimeSettings: "İcra mühiti parametrləri", + mcpTransportLocalStdio: "Yerli stdio", + mcpTransportHttpService: "HTTP xidməti", + mcpHttpWebServiceTitle: "Veb Streamable HTTP xidməti", + mcpHttpWebServiceDescription: "Veb/Docker cari veb dinləmə portundan təkrar istifadə edir. Onu yerləşdirmə mühitinin dəyişənləri ilə aktivləşdirin; parametrlər səhifəsi tokeni heç vaxt saxlamır.", + mcpHttpStatusLabelEnabled: "Aktivdir", + mcpHttpStatusLabelDisabled: "Aktiv deyil", + mcpHttpNotConfigured: "Tənzimlənməyib", + mcpHttpWebTokenSourceAndHosts: "Token mənbəyi: {tokenSource}; icazə verilən hostlar: {hosts}", + mcpHttpWebAllowedOrigins: "İcazə verilən mənbələr: {origins}", + mcpHttpReloadStatus: "Vəziyyəti yenidən yüklə", + mcpHttpServiceTitle: "Streamable HTTP xidməti", + mcpHttpStatusLabelRunning: "İşləyir", + mcpHttpStatusLabelPending: "Konfiqurasiya gözlənilir", + mcpHttpServiceDescription: "Standart olaraq deaktivdir. Aktivləşdirildikdə DBX Desktop xidməti işlədir; yuxarıdakı konfiqurasiya faktiki dinləyən xidmətə yalnız yadda saxlandıqdan sonra tətbiq edilir.", + mcpHttpListenerTitle: "Dinləyici konfiqurasiyası", + mcpHttpListenerHintPrefix: "Bu dəyəri saxlamağı tövsiyə edirik: ", + mcpHttpListenerHintSuffix: " — beləliklə yalnız eyni kompüterdəki MCP müştəriləri qoşula bilər.", + mcpHttpHostLabel: "Dinləmə ünvanı", + mcpHttpPortLabel: "Port", + mcpHttpPathLabel: "MCP yolu", + mcpHttpRemoteTitle: "Uzaqdan giriş", + mcpHttpRemoteHintPrefix: "Yalnız dinləmə ünvanı bu dəyərlərdən fərqli olduqda lazımdır: ", + mcpHttpRemoteHintMiddle: " və ya ", + mcpHttpRemoteHintSuffix: ". Aktivləşdirildikdən sonra Host və Origin icazə siyahıları tələb olunur.", + mcpHttpAllowedHostsLabel: "İcazə verilən hostlar", + mcpHttpHostsHint: "Hər sətirdə bir dənə və ya vergüllə ayrılmış şəkildə.", + mcpHttpAllowedOriginsLabel: "İcazə verilən mənbələr", + mcpHttpOriginsHintPrefix: "Protokolu ehtiva etməlidir, məsələn ", + mcpHttpOriginsHintSuffix: ".", + mcpHttpRemoteDisabledHint: "Uzaqdan giriş deaktiv olduqda icazə siyahıları lazım deyil.", + mcpHttpUnsavedChangesHint: "Yuxarıdakı konfiqurasiya hələ yadda saxlanılmayıb; işləyən xidmət dərhal dəyişməyəcək.", + mcpHttpSaveHint: "Yadda saxlama xidməti başladır və ya yenidən başladır və aşağıdakı əlaqə təfərrüatlarını yeniləyir.", + mcpHttpReload: "Yenidən yüklə", + mcpHttpSaveAndStart: "Yadda saxla və xidməti başlat", + mcpHttpDisabledHint: "Dinləmə ünvanını, uzaqdan giriş icazə siyahılarını və müştəri əlaqəsi təfərrüatlarını tənzimləmək üçün xidməti aktivləşdirin.", + mcpHttpSaveAndStop: "Yadda saxla və xidməti dayandır", + mcpHttpConnectionInfoTitle: "Aktiv müştəri əlaqəsinin təfərrüatları", + mcpHttpServiceNotRunning: "Xidmət işləmir", + mcpHttpRunningConfigBadge: "İşləyən konfiqurasiya", + mcpHttpLastStatusBadge: "Son vəziyyət", + mcpHttpRunningDraftDiffersHint: "Aşağıda hazırda işləyən xidmətin əlaqə təfərrüatları göstərilir; onlar yuxarıdakı yadda saxlanılmamış qaralamadan fərqlənə bilər.", + mcpHttpEndpointLabel: "Xidmət ünvanı", + mcpHttpRotateToken: "Tokeni yenisi ilə əvəz et", + mcpHttpRotateTokenConfirm: "Token yenisi ilə əvəz edildikdən sonra köhnə tokendən istifadə edən MCP müştərilərinin əlaqəsi dərhal kəsilir. Davam edilsin?", + mcpHttpTokenHintPrefix: "Bu dəyəri müştəridə HTTP ", + mcpHttpTokenHintSuffix: " giriş məlumatı kimi istifadə edin.", + mcpHttpClientConfigTitle: "Ümumi HTTP müştəri konfiqurasiyası", + mcpHttpClientConfigHint: "Müştəri sahələrinin adları fərqlənir; URL və Authorization dəyərlərini saxlayın.", + mcpHttpLogsTitle: "Xidmətin diaqnostika jurnalları", + mcpHttpValidationHostRequired: "Dinləmə ünvanını daxil edin.", + mcpHttpValidationPortRange: "Port 1 ilə 65535 arasında tam ədəd olmalıdır.", + mcpHttpValidationPathPrefix: "MCP yolu / ilə başlamalıdır.", + mcpHttpValidationRemoteRequired: "Geri dövrə ünvanından fərqli ünvanda dinləmək üçün 'Uzaqdan giriş' seçimini aktivləşdirin.", + mcpHttpValidationHostsRequired: "Uzaqdan giriş üçün ən azı bir icazə verilən host tələb olunur.", + mcpHttpValidationOriginsRequired: "Uzaqdan giriş üçün ən azı bir icazə verilən mənbə tələb olunur.", + mcpHttpErrorRemoteHostsAndOrigins: "Uzaqdan giriş üçün həm icazə verilən hostlar, həm də icazə verilən mənbələr tələb olunur.", + mcpHttpErrorRemoteBinding: "Uzaqdan dinləmə üçün uzaqdan giriş, həmçinin Host və Origin icazə siyahıları tələb olunur.", + mcpHttpErrorPortInUse: "Port artıq başqa tətbiq tərəfindən istifadə olunur. DBX yadda saxlayarkən öz MCP xidmətini yenidən başladır; portdan istifadə edən digər tətbiqi bağlayın və ya başqa port seçin.", + mcpConnectionPolicyTitle: "Əlaqənin standart icazəsi", + mcpConnectionPolicyDescription: "Təqdim edilən hər əlaqədəki hər verilənlər bazası üçün standartı təyin edir; verilənlər bazası parametrləri əlaqə və qlobal standartlardan üstündür.", + mcpConnectionPolicyEmptyHint: "Əlaqənin standart icazələrini təyin etməzdən əvvəl 1-ci addımda ən azı bir əlaqəyə icazə verin.", + mcpConnectionPolicyInherit: "Qlobal parametrdən götür", + mcpConnectionPolicyReadOnly: "Yalnız oxuma", + mcpConnectionPolicySafeWrite: "Təhlükəsiz yazma əməliyyatlarına icazə ver", + mcpConnectionPolicyHighRiskWrite: "Yüksək riskli əməliyyatlara icazə ver", + mcpToolPermissionsTitle: "MCP alət icazələri", + mcpToolPermissionsDescription: "Yalnız ehtiyacınız olan MCP alətlərini təqdim edin. Seçim ləğv edildikdə, müştərilər alət təriflərini keşdə saxlamış olsalar belə, server onların müraciətlərini rədd edir.", + mcpToolListConnections: "Əlaqələri siyahıla", + mcpToolListDatabases: "Verilənlər bazalarını siyahıla", + mcpToolListTables: "Cədvəlləri siyahıla", + mcpToolDescribeTable: "Cədvəli təsvir et", + mcpToolListRoutines: "Alt proqramları siyahıla", + mcpToolGetRoutineSource: "Alt proqramın mənbə kodu", + mcpToolGetSchemaContext: "Sxem konteksti", + mcpToolExecuteQuery: "SQL / Mongo əmrlərini icra et", + mcpToolExecuteBatch: "SQL əmrlərini toplu icra et", + mcpToolOpenSession: "Sorğu sessiyasını aç", + mcpToolCloseSession: "Sorğu sessiyasını bağla", + mcpToolExecuteRedisCommand: "Redis əmrini icra et", + mcpToolSendMessage: "Mesaj növbəsinə mesaj göndər", + mcpToolAddConnection: "Əlaqə əlavə et", + mcpToolDuplicateConnection: "Əlaqənin surətini yarat", + mcpToolRemoveConnection: "Əlaqəni çıxar", + mcpToolOpenTable: "Cədvəli DBX-də aç", + mcpToolExecuteAndShow: "İcra et və DBX-də göstər", + supportInfoTitle: "Dəstək məlumatları", + supportInfoDescription: "Problem bildirərkən və ya kömək istəyərkən bu mühit təfərrüatlarını kopyalayın.", + supportInfoCopy: "Dəstək məlumatlarını kopyala", + supportInfoCopied: "Kopyalandı", + supportInfoLoading: "Dəstək məlumatları yüklənir...", + supportInfoLoadFailed: "Tam dəstək məlumatlarını yükləmək mümkün olmadı: {message}", + supportInfoAppVersion: "DBX versiyası", + supportInfoRuntime: "İcra mühiti", + supportInfoRuntimeDesktop: "Masaüstü", + supportInfoRuntimeWeb: "Veb", + supportInfoOperatingSystem: "Əməliyyat sistemi", + supportInfoArchitecture: "Arxitektura", + supportInfoUnknown: "Naməlum", + settingsTransferTitle: "Parametrlərin idxalı və ixracı", + settingsTransferDescription: "Konfiqurasiyanızın ehtiyat nüsxəsini yaratmaq üçün tətbiq parametrlərini fayla ixrac edin və ya parametrləri ehtiyat nüsxə faylından bərpa edin.", + settingsTransferExport: "İxrac et", + settingsTransferImport: "İdxal et", + settingsTransferExportSuccess: "Parametrlər ixrac edildi", + settingsTransferExportFailed: "Parametrləri ixrac etmək mümkün olmadı: {message}", + settingsTransferExportChoiceTitle: "Tətbiq edilməmiş dəyişikliklər", + settingsTransferExportChoiceMessage: "Parametrlərdə tətbiq edilməmiş dəyişiklikləriniz var. Yadda saxlanılmış parametrlər ixrac edilərkən onlar daxil edilməyəcək.", + settingsTransferExportChoiceSaved: "Yadda saxlanılmış parametrləri ixrac et", + settingsTransferExportChoiceApplied: "Tətbiq et və ixrac et", + settingsTransferApplyBlocked: "Parametrlərdəki həll edilməmiş ziddiyyətlər tətbiqə və ixraca mane olur.", + settingsTransferImportReadFailed: "Parametrlər faylını oxumaq mümkün olmadı: {message}", + settingsTransferImportInvalidJson: "Fayl etibarlı JSON parametrlər faylı deyil.", + settingsTransferImportUnsupportedVersion: "Parametrlər faylının format versiyası dəstəklənmir: v{version}. Dəstəklənən versiya: v{supported}.", + settingsTransferImportInvalidStructure: "Parametrlər faylının quruluşu yanlışdır.", + settingsTransferImportEmpty: "Parametrlər faylında idxal edilə bilən parametr yoxdur.", + settingsTransferImportFieldInvalid: "Parametrlər faylında etibarsız sahələr var. İdxal ləğv edildi: {fields}", + settingsTransferImportFileTooLarge: "Parametrlər faylı çox böyükdür. Maksimum ölçü: {limit}.", + settingsTransferImportConfirmTitle: "Parametrləri idxal et", + settingsTransferImportConfirmFile: "Fayl", + settingsTransferImportConfirmSourceVersion: "Mənbə tətbiqin versiyası", + settingsTransferImportConfirmIncludes: "Daxil olanlar", + settingsTransferImportConfirmDraftWarning: "Bu kateqoriyalarda əvəz ediləcək tətbiq edilməmiş dəyişikliklər var: {categories}", + settingsTransferImportConfirmAction: "Parametrləri yüklə", + settingsTransferImportLoaded: "Parametrlər yükləndi. Onları yadda saxlamaq üçün Tətbiq et düyməsinə klikləyin.", + settingsTransferCategoryOther: "Digər", + community: "İcma", + qqGroup: "QQ qrupu", + wechatGroup: "WeChat qrupu", + wechatGroupInvite: "Tencent Docs dəvəti", + project: "Layihə", + openSource: "Açıq mənbəli kod deposu", + officialDocs: "Rəsmi sənədlər", + changelogTitle: "Dəyişikliklər jurnalı", + changelogDescription: "Hər buraxılışdakı yeniliklərə baxın.", + changelogLoading: "Dəyişikliklər jurnalı yüklənir...", + changelogLoadFailed: "Dəyişikliklər jurnalını yükləmək mümkün olmadı.", + changelogEmpty: "Dəyişikliklər jurnalında hələ qeyd yoxdur.", + changelogPublishedOn: "{date} tarixində dərc edilib", + changelogNew: "YENİ", + changelogLoadMore: "Daha çox yüklə", + changelogOpenWebsite: "Veb-saytda bax", + changelogOpenGitHub: "GitHub buraxılışı", + changelogNoDetails: "Təfərrüatlar üçün GitHub buraxılışına baxın.", + changelogRetry: "Yenidən cəhd et", + changelogSectionAdded: "Yeni imkanlar", + changelogSectionImproved: "Təkmilləşdirmələr", + changelogSectionFixed: "Xəta düzəlişləri", + changelogSectionChanged: "Dəyişikliklər", + changelogSectionRemoved: "Çıxarılanlar", + shortcutUppercaseSelection: "Seçimi böyük hərflərə çevir", + shortcutLowercaseSelection: "Seçimi kiçik hərflərə çevir", + shortcutConvertNamingStyle: "Adlandırma üslubunu dəyiş", + shortcutExPasteSqlInCondition: "ExPaste: IN şərti kimi yerləşdir", + }, + driverStore: { + jreDirRemoveFailed: "Köhnə JRE qovluğunu silmək mümkün olmadı: {path} (ilkin xəta: {error})", + jreDirRemoveFailedWindows: + "Köhnə JRE qovluğunu silmək mümkün olmadı: {path}\nMümkün səbəblər:\n - dbx Agent / java prosesi hələ də qovluqdan istifadə edir\n - antivirus proqramı onu yoxlayır\nQovluqdan istifadə edə bilən bütün prosesləri bağlayın və ya dbx-i yenidən başladıb bir daha cəhd edin.\n(ilkin xəta: {error})", + jreInUseByDrivers: "JRE {jre} bu drayverlər tərəfindən istifadə olunur: {drivers}. Əvvəlcə onları silin.", + offlinePackageRegistryMissing: "ZIP-də agent-registry.json tapılmadı; bu, etibarlı oflayn drayver paketi deyil.", + progressJreExtract: "JRE arxivdən çıxarılır...", + progressDownloadJre: "JRE endirilir", + progressDownloadDriver: "Drayver endirilir", + progressDownloadJdbcPlugin: "JDBC plagini endirilir", + progressJdbcPluginExtract: "JDBC plagini quraşdırılır...", + usageTitle: "Yaddaş istifadəsi", + usageTotal: "Cəmi {size}", + usageTotalLabel: "Cəmi", + calculating: "Hesablanır...", + usageManagedJre: "İdarə olunan JRE", + usageAgentDrivers: "Daxili drayver agentləri", + usageDownloadCache: "Endirmə keşi", + usageJdbcPlugin: "JDBC plagini", + usageJdbcDriverJars: "JDBC drayver JAR-ları", + clearDownloadCache: "Keşi təmizlə", + downloadCacheClearSuccess: "Endirmə keşi təmizləndi", + downloadCacheClearFailed: "Endirmə keşini təmizləmək mümkün olmadı: {error}", + driverCategoryAll: "Bütün drayverlər", + driverCategoryLabel: "Kateqoriya", + offlineDownloadHint: "Şəbəkədən təcrid olunmuş mühitlər üçün oflayn drayver paketlərini internetə qoşulmuş kompüterdə endirin, sonra onları buraya idxal edin.", + offlineDownloadLink: "Oflayn drayver endirmələri", + searchDrivers: "Drayver adı, növü, versiyası üzrə axtar...", + searchJdbcDrivers: "JDBC drayverinin adı və ya yolu üzrə axtar...", + jdbcMavenCoordinatePlaceholder: "Maven koordinatı, məsələn, org.postgresql:postgresql:42.7.7", + jdbcMavenInstall: "Maven-dən quraşdır", + jdbcMavenInstallSuccess: "JDBC Maven drayveri quraşdırıldı", + jdbcSourceMaven: "Maven", + jdbcSourceManual: "Əl ilə", + noMatchingDrivers: "Uyğun drayver yoxdur.", + javaRuntimeSaved: "Java icra mühiti parametrləri yadda saxlanıldı", + javaRuntimeSaveFailed: "Java icra mühiti parametrlərini yadda saxlamaq mümkün olmadı: {error}", + chooseJavaExecutable: "Java icra faylını seç", + driverInstallSuccess: "{label} drayveri quraşdırıldı", + driverInstallFailed: "{label} drayverini quraşdırmaq mümkün olmadı: {error}", + driverInstallCancelled: "{label} drayverinin quraşdırılması ləğv edildi", + driverUpdateBlocked: "Drayverləri yeniləməzdən əvvəl bu verilənlər bazası əlaqələrini bağlayın: {labels}", + upgradeAllSuccess: "{count} drayver yeniləndi", + upgradeAllPartial: "{count} drayver yeniləndi. Ötürülənlər: {failed}", + upgradeAllFailed: "Toplu yeniləmə uğursuz oldu: {error}", + upgradeAllCancelled: "Yeniləmə ləğv edildi ({count} drayverin yenilənməsi dayandırıldı)", + cancelInstall: "Quraşdırmanı ləğv et", + cancelUpgradeAll: "Toplu yeniləməni ləğv et", + driverUninstallSuccess: "{label} drayveri silindi", + driverUninstallFailed: "{label} drayverini silmək mümkün olmadı: {error}", + chooseOfflineDriverPackage: "Oflayn drayver paketini seç", + offlineImportSuccess: "Oflayn idxal tamamlandı. {count} drayver quraşdırıldı.", + offlineImportFailed: "Oflayn idxal uğursuz oldu: {error}", + driverImportSuccess: "{label} drayveri idxal edildi", + driverImportFailed: "{label} drayverini idxal etmək mümkün olmadı: {error}", + chooseDriverJar: "Drayver faylını seç", + jreReinstallSuccess: "JRE {jre} yenidən quraşdırıldı", + jreReinstallFailed: "JRE {jre} yenidən quraşdırıla bilmədi: {error}", + jreUninstallSuccess: "JRE {jre} silindi", + chooseJdbcPluginZip: "JDBC plagininin zip faylını seç", + agentDrivers: "Daxili drayverlər", + jdbcDrivers: "JDBC drayverləri", + importing: "İdxal edilir...", + importOfflinePackage: "Oflayn paket idxal et", + offlineExport: "Oflayn paket ixrac et", + offlineExportTitle: "Oflayn agent paketini ixrac et", + offlineExportDescription: "Daxil ediləcək DBX tərəfindən idarə olunan agent drayverlərini seçin. Paket yalnız cari platforma ilə uyğundur.", + offlineExportPlatform: "Platforma", + offlineExportSelectedCount: "{total} elementdən {selected} seçilib", + offlineExportSelectAll: "Hamısını seç", + offlineExportClear: "Təmizlə", + offlineExportNoDrivers: "DBX tərəfindən idarə olunan uyğun agent drayverləri quraşdırılmayıb.", + offlineExportArtifactJar: "Java JAR", + offlineExportArtifactNative: "Platformaya məxsus", + offlineExportArtifactUnknown: "Naməlum", + offlineExportPreparing: "İxrac önbaxışı hazırlanır...", + offlineExportJreSummary: "{count} idarə olunan JRE avtomatik daxil ediləcək.", + offlineExportSecurityHint: "Yalnız DBX tərəfindən idarə olunan artefaktlar və tələb olunan idarə olunan JRE-lər daxil edilir. Yerli yollar, parametrlər və xarici drayverlər daxil edilmir.", + offlineExportStart: "{count} drayveri ixrac et", + offlineExporting: "İxrac edilir...", + offlineExportPreviewFailed: "İxracı hazırlamaq mümkün olmadı: {error}", + offlineExportChooseDestination: "Oflayn agent paketini yadda saxla", + offlineExportSuccess: "{file} ixrac edildi: {drivers} drayver, {jres} JRE, {size}.", + offlineExportFailed: "Oflayn paket ixracı uğursuz oldu: {error}", + offlineExportUnavailable_unmanagedInstall: "Bu artefakt DBX tərəfindən idarə olunan quraşdırma kimi izlənilmir.", + offlineExportUnavailable_localInstall: "Yerli olaraq idxal edilmiş agent yığımları daxil edilmir.", + offlineExportUnavailable_launchConfig: "Fərdi başlatma konfiqurasiyaları kompüterə məxsusdur.", + offlineExportUnavailable_missingArtifact: "Quraşdırılmış agent artefaktı yoxdur.", + offlineExportUnavailable_invalidArtifact: "Quraşdırılmış agent artefaktı etibarsızdır və ya zədələnib.", + offlineExportUnavailable_unsafeSource: "Artefakt idarə olunan saxlama yerindən kənardadır və ya simvolik keçiddən istifadə edir.", + offlineExportUnavailable_externalDriverRequired: "Bu agent istifadəçi tərəfindən təqdim edilən xarici drayver tələb edir.", + offlineExportUnavailable_missingManagedJre: "Tələb olunan DBX tərəfindən idarə olunan JRE quraşdırılmayıb.", + offlineExportUnavailable_invalidManagedJre: "Tələb olunan DBX tərəfindən idarə olunan JRE etibarsızdır və ya təhlükəsiz deyil.", + refresh: "Yenilə", + javaRuntime: "Java icra mühiti", + javaRuntimeManaged: "DBX tərəfindən idarə olunan JRE", + javaRuntimeSystem: "Sistemdəki java", + javaRuntimeCustom: "Fərdi yol", + saving: "Yadda saxlanılır...", + customJavaPathPlaceholder: "/path/to/java və ya /path/to/jdk", + choose: "Seç", + systemJavaHint: "Cari PATH-dəki java-dan istifadə et.", + jreRuntimeTitle: "JRE {jre} icra mühiti", + notInstalled: "Quraşdırılmayıb", + reinstalling: "Yenidən quraşdırılır", + installing: "Quraşdırılır", + install: "Quraşdır", + reinstall: "Yenidən quraşdır", + uninstall: "Quraşdırmanı sil", + jreRuntime: "JRE icra mühiti", + jreRuntimeAutoDownloadHint: "Drayver ilk dəfə quraşdırılarkən avtomatik endirilir", + driversUpdatable: "{count} drayver yenilənə bilər", + updatesAvailableTitle: "Yeniləmələr mövcuddur", + updatesAvailableDescription: "Aşağıdakı drayverlər üçün yeni versiyalar mövcuddur. Ən son imkanları və düzəlişləri əldə etmək üçün yeniləyin.", + allDriversTitle: "Bütün drayverlər", + upgradingProgress: "Yenilənir ({current}/{total})", + upgradeAll: "Hamısını yenilə", + queued: "Növbədədir", + importLocalJar: "Yerli drayver faylını idxal et", + updating: "Yenilənir", + update: "Yenilə", + localInstall: "Yerli quraşdırma", + localInstallHint: "Şəbəkədən təcrid olunmuş kompüterlər üçün: internetə çıxışı olan başqa kompüterdə DBX-in GitHub buraxılışları səhifəsindən rəsmi dbx-jdbc-plugin-*.zip faylını endirin, buraya köçürün və seçin — bu kompüterdə şəbəkəyə çıxış tələb olunmur.", + runtimeDrivers: "İcra mühiti", + storageTab: "Saxlama", + runtimeTitle: "Drayverin icra mühiti", + runtimeHint: "İcra mühiti göstəriciləri yalnız bu panel açıq olduqda toplanır.", + runtimeRunning: "İşləyir", + runtimeMemory: "Yaddaş", + runtimeHealth: "İşlək vəziyyət", + runtimeHealth_healthy: "Normal", + runtimeHealth_warning: "Xəbərdarlıq", + runtimeHealth_error: "Xəta", + runtimeLastError: "Son xəta", + runtimeEmpty: "Hələ drayver icra mühiti yoxdur. Başlatmaq üçün agent vasitəsilə idarə olunan əlaqə açın.", + runtimeKindAgent: "Agent", + runtimeKindPlugin: "Plagin", + runtimeSourceDaemon: "Fon prosesi", + runtimeSourceConnection: "Əlaqə", + runtimeStatus_running: "İşləyir", + runtimeStatus_stopped: "Dayandırılıb", + runtimeStatus_error: "Xəta", + runtimeStatus_unknown: "Naməlum", + runtimePid: "PID", + runtimeUptime: "İşləmə müddəti", + runtimeActions: "Əməliyyatlar", + runtimeStop: "Dayandır", + runtimeRestart: "Yenidən başlat", + runtimeControlConnectionOwned: "Bu icra mühitini dayandırmaq üçün verilənlər bazası əlaqəsini bağlayın.", + runtimeStopSuccess: "{label} icra mühiti dayandırıldı", + runtimeStopFailed: "{label} dayandırıla bilmədi: {error}", + runtimeRestartSuccess: "{label} icra mühiti yenidən başladıldı", + runtimeRestartFailed: "{label} yenidən başladıla bilmədi: {error}", + driverStoreDir: "Drayver saxlama yolu", + driverStoreDirDescription: "JDBC plagini və Agent/JRE məlumatları üçün ayrı saxlama yerləri təyin edin. Köçürmədən sonra tətbiq avtomatik yenidən başladılacaq.", + pluginStoreDir: "JDBC plagininin qovluğu", + pluginStoreDirDescription: "JDBC plaginini, Maven asılılıq həlledicisini və JDBC drayver JAR-larını saxlayır.", + agentStoreDir: "Agent / JRE qovluğu", + agentStoreDirDescription: "Agent drayver paketlərini, idarə olunan JRE-ləri və icra mühiti keşini saxlayır.", + driverStoreDirDefault: "Standart (quraşdırma qovluğu)", + driverStoreDirChange: "Dəyiş", + driverStoreDirReset: "Standarta sıfırla", + driverStoreDirMigrating: "{target} köçürülür…", + driverStoreDirConfirm: "{target} dəyişdirildikdə əlaqəli drayver məlumatları yeni yerə köçürüləcək. Köçürmə zamanı əlaqəli drayver əlaqələri kəsilə bilər. Köçürmədən sonra tətbiq avtomatik yenidən başladılacaq. Davam edilsin?", + driverStoreDirMigrationFailed: "Drayver saxlama yerinin köçürülməsi uğursuz oldu: {error}", + driverStoreDirDialogTitle: "{target} qovluğunu seçin", + driverStoreDirSuccess: "{target} dəyişdirildi, yenidən başladılır…", + }, + databaseExport: { + title: "Verilənlər bazasını ixrac et", + options: "Seçimlər", + includeStructure: "Cədvəlin quruluşu (DDL)", + includeCreateDatabase: "Verilənlər bazasının qurulmasını daxil et (CREATE DATABASE / USE)", + dropTableIfExists: "DDL-dən əvvəl DROP TABLE IF EXISTS ifadəsini əlavə et", + omitAutoIncrement: "AUTO_INCREMENT parametrini daxil etmə (yeni quraşdırma skriptləri üçün)", + includeData: "Cədvəl məlumatları (INSERT)", + includeObjects: "Görünüşlər / prosedurlar / funksiyalar / ardıcıllıqlar", + databaseSelection: "Verilənlər bazaları", + selectedDatabases: "{selected}/{total} seçilib", + selectAllDatabases: "Hamısını seç", + filterDatabases: "Verilənlər bazalarını axtar...", + clearDatabases: "Təmizlə", + tableSelection: "Cədvəllər", + selectedTables: "{selected}/{total} seçilib", + selectAllTables: "Hamısını seç", + filterTables: "Cədvəlləri axtar...", + clearTables: "Təmizlə", + loadingTables: "Cədvəllər yüklənir...", + tableLoadError: "Cədvəlləri yükləmək mümkün olmadı: {error}", + noTables: "Cədvəl tapılmadı", + export: "İxrac et", + exportAllDatabases: "Bütün verilənlər bazalarını ixrac et", + allSchemas: "Bütün sxemlər", + exporting: "İxrac edilir...", + preparing: "İxrac hazırlanır (cədvəllər və metaməlumatlar oxunur)...", + preparingObject: "Hazırlanır: {object}", + selectExportDirectory: "İxrac qovluğunu seç", + currentDatabase: "Verilənlər bazası {current}/{total}", + currentTable: "Cari: {table} ({current}/{total})", + rowsExported: "{current}/{total} obyekt emal edildi, {count} sətir ixrac edildi", + allRowsExported: "İxrac edilmiş sətirlərin ümumi sayı: {count}", + exportSuccess: "Verilənlər bazası uğurla ixrac edildi", + exportAllSuccess: "{count} verilənlər bazası uğurla ixrac edildi", + exportSuccessWithErrors: "İxrac tamamlandı, {count} obyekt üzrə əməliyyat uğursuz oldu: {firstError}… Təfərrüatlar üçün ixrac edilmiş fayldakı -- ERROR şərhlərinə baxın.", + exportAllSuccessWithErrors: "{count} verilənlər bazası ixrac edildi, lakin {errorCount} obyektdə xəta baş verdi: {firstError}… İxrac edilmiş fayllardakı -- ERROR şərhlərinə baxın.", + allDatabasesTask: "Bütün verilənlər bazaları ({count})", + exportError: "İxrac alınmadı: {error}", + exportCancelled: "İxrac ləğv edildi", + runInBackground: "Arxa planda işlət", + }, + databaseBackup: { + title: "Verilənlər bazalarının ehtiyat nüsxələri", + schedules: "Ehtiyat nüsxələmə cədvəlləri", + runtimeRequirement: "Planlaşdırılmış ehtiyat nüsxələmə DBX açıq olduqda, o cümlədən sistem panelinə kiçildildikdə işləyir.", + addSchedule: "Cədvəl əlavə et", + oneShotBackup: "İndi ehtiyat nüsxə yarat", + oneShotDescription: "Verilənlər bazasının birdəfəlik ehtiyat nüsxəsini yaradın. Tamamlandıqda ehtiyat nüsxələmə tarixçəsində görünəcək.", + startBackup: "Ehtiyat nüsxələməni başlat", + noSupportedConnections: "Ehtiyat nüsxələmə cədvəli əlavə etməzdən əvvəl MySQL və ya PostgreSQL əlaqəsi yaradın.", + editSchedule: "Cədvəli redaktə et", + defaultScheduleName: "Verilənlər bazasının ehtiyat nüsxəsi", + oneShotName: "Birdəfəlik ehtiyat nüsxə", + noSchedules: "Ehtiyat nüsxələmə cədvəli yoxdur", + noSchedulesHint: "Təkrarlanan ehtiyat nüsxələmə cədvəli yaradın və ya indi birdəfəlik ehtiyat nüsxə yaradın.", + scheduleName: "Cədvəlin adı", + connection: "Əlaqə", + missingConnection: "Əlaqə yoxdur", + destination: "Təyinat qovluğu", + selectDestination: "Ehtiyat nüsxə qovluğunu seç", + runDirectoryPattern: "İcra qovluğunun şablonu", + runDirectoryPatternHint: + "Təyinat qovluğu daxilində nisbi yol. {'{'}schedule{'}'}, {'{'}date{'}'}, {'{'}timestamp{'}'} və {'{'}runId{'}'} şablonlarından istifadə edin. Standart şablona əlavə təcrid üçün {'{'}runId{'}'} daxildir. Nümunə: {'{'}schedule{'}'}/{'{'}date{'}'}/{'{'}timestamp{'}'}-{'{'}runId{'}'}", + runDirectoryPreview: "Qovluğa önbaxış", + runDirectoryPatternInvalid: ". və ya .. hissələri olmayan nisbi yoldan istifadə edin.", + compression: "Sıxılma", + compressionNone: "Sıxılma yoxdur (.sql)", + compressionGzip: "Gzip (.sql.gz)", + searchConnections: "Əlaqələrdə axtarış…", + noMatchingConnections: "Uyğun əlaqə yoxdur", + searchDatabases: "Verilənlər bazalarında axtarış…", + noMatchingDatabases: "Uyğun verilənlər bazası yoxdur", + databaseListLoadFailed: "{name} üçün verilənlər bazalarını yükləmək mümkün olmadı. Bu əlaqəni yoxlayın və ya başqasını seçin.", + databases: "Verilənlər bazaları", + allDatabases: "Bütün verilənlər bazaları", + databaseCount: "{count} verilənlər bazası", + tableScope: "Cədvəl əhatəsi", + allTables: "Bütün cədvəllər və görünüşlər", + includeTables: "Yalnız uyğun gələnləri daxil et", + excludeTables: "Uyğun gələnləri istisna et", + tablePatterns: "Cədvəl adı qaydaları", + tablePatternsPlaceholder: "orders, audit_*, public.users", + tablePatternsHint: "Qaydaları vergüllə ayırın. * və ? əvəzedici simvolları və schema.table dəstəklənir.", + includedTablePatterns: "{count} daxil etmə qaydası", + excludedTablePatterns: "{count} istisna qaydası", + frequency: "Tezlik", + frequencyHourly: "Bir neçə saatdan bir", + frequencyDaily: "Gündəlik", + frequencyWeekly: "Həftəlik", + intervalHours: "İnterval (saat)", + time: "Vaxt", + weekday: "Həftənin günü", + retention: "Son icraları saxla", + contents: "Ehtiyat nüsxənin məzmunu", + enabled: "Cədvəl aktivdir", + enabledHint: "Növbəti icra yerli saat qurşağınıza əsasən hesablanır.", + nextRun: "Növbəti: {time}", + nextRunPreview: "Növbəti icra: {time}", + keepRuns: "{count} icra saxla", + everyHours: "Hər {count} saatdan bir", + dailyAt: "Hər gün saat {time}", + weeklyAt: "{weekday}, saat {time}", + never: "Heç vaxt", + enable: "Cədvəli aktivləşdir", + disable: "Cədvəli deaktiv et", + runNow: "İndi ehtiyat nüsxə yarat", + cancel: "Ehtiyat nüsxələməni ləğv et", + cancelling: "Ləğv edilir…", + cancelRequested: "Ləğv sorğusu göndərildi. Cari əməliyyat dayandırılır.", + edit: "Redaktə et", + delete: "Sil", + scheduleCreated: "Ehtiyat nüsxələmə cədvəli yaradıldı", + scheduleUpdated: "Ehtiyat nüsxələmə cədvəli yeniləndi", + deleteSchedule: "Cədvəli sil", + deleteScheduleConfirm: '"{name}" cədvəli silinsin? Mövcud ehtiyat nüsxə faylları tarixçədə qalacaq.', + cannotDeleteRunningSchedule: "İcra olunan ehtiyat nüsxələmə cədvəli silinə bilməz", + history: "Ehtiyat nüsxələmə tarixçəsi", + noHistory: "Hələ ehtiyat nüsxə yoxdur", + allConnections: "Bütün əlaqələr", + searchHistoryConnections: "Əlaqələrdə axtarış…", + backupMethod: "Ehtiyat nüsxələmə üsulu", + allBackupMethods: "Bütün üsullar", + backupStatus: "Ehtiyat nüsxələmənin vəziyyəti", + allStatuses: "Bütün vəziyyətlər", + noFilteredHistory: "Uyğun ehtiyat nüsxə qeydi yoxdur", + selectAllFiltered: "Süzgəcdən keçənlərin hamısını seç", + selectRun: "{name} adlı icranı seç", + selectedRuns: "{count} seçilib", + deleteSelected: "Seçilənləri sil", + showFiles: "Ehtiyat nüsxə fayllarını göstər", + scheduledTrigger: "Planlaşdırılmış", + manualTrigger: "Əl ilə", + oneShotTrigger: "Birdəfəlik", + fileCount: "{count} fayl", + progress: "Ehtiyat nüsxələmənin gedişatı", + renameBackup: "Ehtiyat nüsxənin adını dəyiş", + backupName: "Ehtiyat nüsxənin adı", + backupRenamed: "Ehtiyat nüsxənin adı dəyişdirildi", + revealFile: "Fayl menecerində göstər", + restore: "Bərpa et", + deleteBackup: "Ehtiyat nüsxəni sil", + deleteBackupConfirm: "Bu ehtiyat nüsxə və onun {count} SQL faylı silinsin? Bunu geri qaytarmaq mümkün deyil.", + deleteBackupsConfirm: "{count} ehtiyat nüsxə və onların {files} SQL faylı silinsin? Bunu geri qaytarmaq mümkün deyil.", + backupDeleted: "Ehtiyat nüsxə silindi", + backupsDeleted: "{count} ehtiyat nüsxə silindi", + runSuccess: "Ehtiyat nüsxələmə {count} faylla tamamlandı", + runCancelled: "Ehtiyat nüsxələmə ləğv edildi", + runFailed: "Ehtiyat nüsxələmə alınmadı: {error}", + unknownError: "Naməlum xəta", + status: { + running: "İşləyir", + success: "Tamamlandı", + failed: "Alınmadı", + cancelled: "Ləğv edildi", + }, + weekdays: { + sunday: "Bazar", + monday: "Bazar ertəsi", + tuesday: "Çərşənbə axşamı", + wednesday: "Çərşənbə", + thursday: "Cümə axşamı", + friday: "Cümə", + saturday: "Şənbə", + }, + }, + mqTopics: { + title: "Mövzular", + searchPlaceholder: "Mövzularda axtarış", + includeNonPersistent: "Daimi olmayan mövzuları daxil et", + refresh: "Yenilə", + refreshing: "Yenilənir...", + createTopic: "Mövzu yarat", + selectTenantNamespace: "Əvvəlcə icarəçi və ad məkanı seçin", + loading: "Yüklənir...", + noTopics: "Bu ad məkanında mövzu yoxdur", + noMatches: "Uyğun mövzu yoxdur", + name: "Ad", + type: "Növ", + partitions: "Bölmələr", + actions: "Əməliyyatlar", + nonPersistent: "Daimi olmayan", + partitionedTopic: "Bölməli mövzu", + normalTopic: "Adi mövzu", + systemTopic: "Sistem mövzusu", + includeSystemTopics: "Sistem mövzularını daxil et", + noUserTopics: "İstifadəçi mövzusu yoxdur. Daxili, təkrar cəhd və ya DLQ mövzularını yoxlamaq üçün növ süzgəclərini aktivləşdirin.", + typeFilter: "Növ süzgəcləri", + messageType: "Mesaj növü", + messageTypeHint: "RocketMQ Dashboard ilə uyğun olaraq RocketMQ message.type dəyərini brokerin mövzu konfiqurasiyasında saxlayır.", + rocketmqType: { + normal: "Adi", + delay: "Gecikmə", + fifo: "Sıralanmış", + transaction: "Tranzaksiya", + unspecified: "Göstərilməyib", + retry: "Yenidən cəhd et", + dlq: "Çatdırılmamış mesaj", + system: "Sistem", + }, + partitionCount: "{count} bölmə", + partitionsUnknown: "Naməlum bölmələr", + adjustPartitions: "Bölmələri tənzimlə", + delete: "Sil", + tenantNamespace: "İcarəçi / ad məkanı", + topicName: "Mövzu adı", + topicNamePlaceholder: "məs., my-topic", + persistentRecommended: "Daimi mövzu (tövsiyə olunur)", + persistentHint: "Daimi mövzular mesajları diskdə saxlayır; daimi olmayan mövzular onları yalnız yaddaşda saxlayır.", + enablePartitions: "Bölmələri aktivləşdir", + partitionQuantity: "Bölmə sayı", + partitionHint: "Bölmələr paralel icranı yaxşılaşdıra bilər, lakin resurs istifadəsini artırır.", + cancel: "Ləğv et", + create: "Yarat", + updatePartitionsTitle: "Bölmələri tənzimlə: {name}", + currentPartitions: "Cari bölmələr", + newPartitions: "Yeni bölmələr", + partitionMinHint: "Bölmələrin sayını yalnız artırmaq olar, azaltmaq olmaz. Minimum: {min}", + update: "Yenilə", + readOnly: "Bu əlaqə yalnız oxumaq üçündür və yazma əməliyyatlarını yerinə yetirə bilməz.", + topicNameRequired: "Mövzu adı tələb olunur", + currentPartitionsUnknown: "Cari bölmə sayı naməlumdur, buna görə bölmələri təhlükəsiz tənzimləmək mümkün deyil.", + partitionMustIncrease: "Yeni bölmə sayı cari bölmə sayından çox olmalıdır.", + confirmDelete: '"{name}" mövzusu silinsin? Bu əməliyyatı geri qaytarmaq mümkün deyil.', + queues: "Növbələr", + tabQueues: "Növbələr", + tabExchanges: "Mübadilə qovşaqları", + queueCount: "{count} növbə", + clusterName: "Klaster", + brokerName: "Broker", + allBrokers: "Bütün əsas brokerlər", + readQueues: "Oxuma növbələri", + writeQueues: "Yazma növbələri", + perm: "İcazə", + permReadWrite: "Oxuma + yazma (6)", + permRead: "Yalnız oxuma (4)", + permWrite: "Yalnız yazma (2)", + actionStatus: "Vəziyyət", + actionRoute: "Marşrut", + actionConsumers: "İstehlakçılar", + actionConfig: "Konfiqurasiya", + actionSend: "Göndər", + actionMessageQuery: "Mesajları sorğula", + actionReset: "Sürüşməni sıfırla", + actionSkip: "Gözləyən mesajları ötür", + topicStatusTitle: "Mövzunun vəziyyəti: {name}", + topicRouteTitle: "Mövzunun marşrutu: {name}", + topicConsumersTitle: "İstehlakçılar: {name}", + topicConfigTitle: "Mövzunun konfiqurasiyası: {name}", + topicConfigHint: "RocketMQ Dashboard ilə eynidir: yalnız oxuma/yazma növbələrinin sayı və icazələr redaktə edilə bilər. Mesaj növü mövzu yaradılarkən təyin edilir.", + topicResetTitle: "Sürüşməni sıfırla: {name}", + topicSkipTitle: "Yığılmış mesajları ötür: {name}", + confirmSkip: '"{name}" mövzusundakı bütün istehlakçı qrupları üçün yığılmış mesajlar ötürülsün?', + skipHint: "Bütün abunə olmuş istehlakçı qruplarını bu mövzu üçün ən son sürüşməyə sıfırlayır.", + saveConfig: "Konfiqurasiyanı yadda saxla", + resetPosition: "Mövqeni sıfırla", + positionEarliest: "Ən erkən", + positionLatest: "Ən son", + positionTimestamp: "Vaxta görə", + timestamp: "Vaxt", + invalidTimestamp: "Düzgün vaxt daxil edin", + resetTimePreview: "Seçilmiş vaxt: {time}", + noConsumerGroups: "İstehlakçı qrupu yoxdur", + noConsumers: "Bu mövzuya abunə olmuş istehlakçı qrupu yoxdur", + manageConsumers: "İdarə et", + routeQueues: "Növbə məlumatları", + routeBrokers: "Broker məlumatları", + brokerAddrs: "Broker ünvanları", + noRouteData: "Marşrut məlumatı yoxdur", + noQueueStats: "Növbə statistikası yoxdur", + noConfig: "Mövzu konfiqurasiyası qaytarılmadı", + queueId: "Növbə", + beginOffset: "Minimum sürüşmə", + endOffset: "Maksimum sürüşmə", + messageCount: "Mesajlar", + // RabbitMQ queue table columns (issue #6600) + rabbitmqQueueType: "Növ", + rabbitmqQueueTypeHint: "İdarəetmə API-si tərəfindən bildirilən növbə növü (type və ya x-queue-type); classic / quorum / stream", + rabbitmqQueueTypeUnknown: "Növbə", + rabbitmqFeatures: "Xüsusiyyətlər", + rabbitmqState: "Vəziyyət", + rabbitmqArguments: "Arqumentlər", + consumers: "İstehlakçılar", + rabbitmqRates: "Sürətlər", + rabbitmqPublishRate: "Dərc et", + rabbitmqDeliverRate: "Çatdır/al", + rabbitmqAckRate: "Təsdiq", + }, + mqExchanges: { + searchPlaceholder: "Mübadilə qovşaqlarında axtarış", + refresh: "Yenilə", + refreshing: "Yenilənir...", + createExchange: "Mübadilə qovşağı yarat", + selectNamespace: "Əvvəlcə virtual host seçin", + loading: "Yüklənir...", + noExchanges: "Bu virtual hostda mübadilə qovşağı yoxdur", + noMatches: "Uyğun mübadilə qovşağı yoxdur", + name: "Ad", + type: "Növ", + durable: "Davamlı", + autoDelete: "Avtomatik silinmə", + actions: "Əməliyyatlar", + builtin: "Daxili", + viewBindings: "Bağlamalar", + delete: "Sil", + yes: "Bəli", + no: "Xeyr", + bindingsTitle: "{name} mənbəyindən bağlamalar", + bindDestination: "Bağla", + noBindings: "Bu mübadilə qovşağından bağlama yoxdur", + bindingSource: "Mənbə", + bindingDestination: "Təyinat", + bindingType: "Növ", + routingKey: "Marşrutlaşdırma açarı", + arguments: "Arqumentlər", + unbind: "Bağlamanı ləğv et", + destinationTypeQueue: "Növbə", + destinationTypeExchange: "Mübadilə qovşağı", + virtualHost: "Virtual host", + namePlaceholder: "məs., dbx-events", + cancel: "Ləğv et", + create: "Yarat", + bind: "Bağla", + bindDialogTitle: "{name} ilə bağla", + queueNamePlaceholder: "məs., dbx-queue", + exchangeNamePlaceholder: "məs., dbx-events", + routingKeyPlaceholder: "məs., orders.*", + argumentsPlaceholder: "İstəyə bağlı JSON obyekti, məs., {'{'}\"x-match\": \"all\"{'}'}", + nameRequired: "Mübadilə qovşağının adı tələb olunur", + destinationRequired: "Təyinat tələb olunur", + argumentsMustBeObject: "Arqumentlər JSON obyekti olmalıdır", + readOnly: "Bu əlaqə yalnız oxumaq üçündür və yazma əməliyyatlarını yerinə yetirə bilməz.", + confirmDelete: '"{name}" mübadilə qovşağı silinsin? Bu əməliyyatı geri qaytarmaq mümkün deyil.', + confirmUnbind: '"{source}" mənbəyindən "{destination}" təyinatına bağlama çıxarılsın?', + }, + mqClientConnections: { + searchPlaceholder: "Əlaqələrdə axtarış", + refresh: "Yenilə", + refreshing: "Yenilənir...", + loading: "Yüklənir...", + noConnections: "Müştəri əlaqəsi yoxdur", + noMatches: "Uyğun əlaqə yoxdur", + name: "Ad", + user: "İstifadəçi", + peerAddress: "Qarşı tərəfin ünvanı", + state: "Vəziyyət", + channels: "Kanallar", + recvRate: "Qəbul sürəti", + sendRate: "Göndərmə sürəti", + connectedAt: "Əlaqə vaxtı", + actions: "Əməliyyatlar", + closeConnection: "Əlaqəni bağla", + confirmClose: '"{name}" əlaqəsi bağlansın? Onun bütün kanalları bağlanacaq və bunu geri qaytarmaq mümkün deyil.', + readOnly: "Bu əlaqə yalnız oxumaq üçündür; yazma əməliyyatları deaktiv edilib.", + noChannels: "Bu əlaqədə kanal yoxdur", + channelName: "Kanal", + prefetch: "Əvvəlcədən gətirmə", + unacked: "Təsdiqlənməmiş", + consumers: "İstehlakçılar", + }, + mqUserPermissions: { + usersTitle: "İstifadəçilər", + permissionsTitle: "İcazələr", + refresh: "Yenilə", + refreshing: "Yenilənir...", + loading: "Yüklənir...", + createUser: "İstifadəçi yarat", + grantPermission: "İcazə ver", + searchUsers: "İstifadəçilərdə axtarış", + noUsers: "İstifadəçi yoxdur", + noUserMatches: "Uyğun istifadəçi yoxdur", + name: "Ad", + tags: "Etiketlər", + actions: "Əməliyyatlar", + delete: "Sil", + confirmDeleteUser: '"{name}" istifadəçisi silinsin? Bu əməliyyatı geri qaytarmaq mümkün deyil.', + password: "Parol", + tagsPlaceholder: "Vergüllə ayrılmış, məs., administrator, monitoring", + nameRequired: "İstifadəçi adı tələb olunur", + passwordRequired: "Parol tələb olunur", + cancel: "Ləğv et", + create: "Yarat", + user: "İstifadəçi", + vhost: "Virtual host", + configure: "Konfiqurasiya et", + write: "Yaz", + read: "Oxu", + noPermissions: "İcazə yoxdur", + revoke: "Geri al", + confirmRevoke: '"{user}" istifadəçisinin "{vhost}" virtual hostundakı icazəsi ləğv edilsin?', + grant: "İcazə ver", + selectUser: "İstifadəçi seç", + selectVhost: "Virtual host seç", + patternHint: "Resurs adları ilə müqayisə edilən müntəzəm ifadə; boş olduqda standart .* (hamısı) istifadə olunur.", + userRequired: "İstifadəçi seç", + vhostRequired: "Virtual host seç", + readOnly: "Bu əlaqə yalnız oxumaq üçündür; yazma əməliyyatları deaktiv edilib.", + }, + mqRabbitMqPolicies: { + title: "Siyasətlər", + refresh: "Yenilə", + refreshing: "Yenilənir...", + loading: "Yüklənir...", + createPolicy: "Siyasət yarat", + editPolicy: "Siyasəti redaktə et", + noPolicies: "Siyasət yoxdur", + name: "Ad", + vhost: "Virtual host", + pattern: "Şablon", + applyTo: "Tətbiq ediləcək obyektlər", + priority: "Prioritet", + definition: "Tərif", + actions: "Əməliyyatlar", + edit: "Redaktə et", + delete: "Sil", + confirmDelete: '"{vhost}" virtual hostundakı "{name}" siyasəti silinsin?', + cancel: "Ləğv et", + save: "Yadda saxla", + selectVhost: "Virtual host seç", + definitionKey: "Açar", + definitionValue: "Dəyər", + addDefinition: "Tərif qeydi əlavə et", + patternHint: "Növbə/mübadilə qovşağı adları ilə müqayisə edilən müntəzəm ifadə.", + nameRequired: "Siyasətin adı tələb olunur", + vhostRequired: "Virtual host seç", + patternRequired: "Şablon tələb olunur", + readOnly: "Bu əlaqə yalnız oxumaq üçündür; yazma əməliyyatları deaktiv edilib.", + }, + mqRabbitMqMonitoring: { + title: "Klaster monitorinqi", + loading: "Yüklənir...", + overviewTitle: "Ümumi baxış", + messagesReady: "Hazır mesajlar", + messagesUnacked: "Təsdiqlənməmiş mesajlar", + publishRate: "Dərc sürəti", + deliverRate: "Çatdırılma sürəti", + ackRate: "Təsdiq sürəti", + totalQueues: "Növbələr", + totalExchanges: "Mübadilə qovşaqları", + totalConnections: "Əlaqələr", + totalChannels: "Kanallar", + totalConsumers: "İstehlakçılar", + nodesTitle: "Qovşaqlar", + nodeName: "Qovşaq", + status: "Vəziyyət", + running: "İşləyir", + stopped: "Dayandırılıb", + memory: "Yaddaş", + diskFree: "Diskdə boş yer", + fileDescriptors: "Fayl deskriptorları", + sockets: "Soketlər", + uptime: "İşləmə müddəti", + noNodes: "Qovşaq yoxdur", + }, + mqRocketmq: { + consumerGroupTitle: "İstehlakçı qrupları", + searchConsumerGroup: "İstehlakçı qrupunda axtarış", + connectionNotReady: "Əlaqə hazır deyil. Klaster məlumatlarını yeniləyin.", + tabSend: "Mesaj göndər", + tabQuery: "Mesaj sorğusu", + noDlqTopics: "DLQ mövzusu tapılmadı. Mövzular vərəqində DLQ növ süzgəcini aktivləşdirin və yeniləyin.", + topicFilterAll: "Hamısı", + topicFilterBusiness: "Biznes", + topicFilterDlq: "DLQ", + actionProduce: "İstehsal et", + actionConsume: "İstehlak et", + aclTitle: "Girişə nəzarət", + actionMessageQuery: "Mesajları sorğula", + actionSendMessage: "Mesaj göndər", + actionMore: "Daha çox", + actionDetailGroup: "Təfərrüatlar", + actionResetOffset: "Sürüşməni sıfırla", + dlqConsumerGroup: "İstehlakçı qrupu", + dlqConsumerGroupPlaceholder: "İstehlakçı qrupu (istəyə bağlı)", + dlqQueryByKey: "Açara görə sorğula", + viewDlqMessages: "DLQ mesajlarına bax", + namesrvAddr: "NameServer", + }, + mqAdmin: { + viewTenant: "İcarəçiyə bax", + viewNamespace: "Ad məkanına bax", + viewTopic: "Mövzuya bax", + connectionMissing: "Əlaqə tapılmadı. Yenidən qoşulun və bir daha cəhd edin.", + writeDeniedReadOnly: "Bu əlaqə yalnız oxumaq üçündür və yazma əməliyyatlarını yerinə yetirə bilməz.", + readOnly: "Yalnız oxuma", + allNamespaces: "Bütün ad məkanları", + newNamespace: "Yeni ad məkanı", + namespace: "Ad məkanı", + selectNamespaceToCreate: "Yaratmaq üçün konkret ad məkanı seçin", + selectNamespaceToWrite: "Bu əməliyyatı yerinə yetirmək üçün konkret ad məkanı seçin", + tabTenants: "İcarəçilər", + tabNamespaces: "Ad məkanları", + tabTopics: "Mövzular", + tabSubscriptions: "Abunəliklər", + tabConsumerGroups: "İstehlakçı qrupları", + tabMonitoring: "Monitorinq", + tabClients: "Müştərilər", + tabMessages: "Mesajlar", + tabBroker: "Broker", + tabCluster: "Klaster", + tabConsumers: "İstehlakçılar", + tabProducers: "İstehsalçılar", + tabDlq: "DLQ", + tabTrace: "İzləmə", + tabAcl: "ACL", + tabPolicies: "Siyasətlər", + tabPermissions: "İcazələr", + tabRawApi: "Xam API", + }, + mqMessages: { + title: "Mesaj göndər", + clear: "Təmizlə", + selectNamespaceOrTopicFirst: "Əvvəlcə ad məkanı və ya mövzu seçin", + readOnlyCannotSend: "Bu əlaqə yalnız oxumaq üçündür və mesaj göndərə bilməz", + selectTargetTopic: "Hədəf mövzunu seçin", + messageContentRequired: "Mesaj məzmunu tələb olunur", + sendSuccess: "Mesaj göndərildi — bölmə: {partition}, sürüşmə: {offset}", + targetTopic: "Hədəf mövzu", + topicLoading: "Yüklənir...", + topicSearchPlaceholder: "Mövzu seç", + refreshTopicList: "Mövzu siyahısını yenilə", + topicOptionWithPartitions: "{label} ({partitions} bölmə)", + noTopicsAvailable: "Mövcud mövzu yoxdur", + topicSearchHint: "Siyahını süzmək üçün yazın. Mövzu seçildikdə sorğu icra olunur. Cari mövzu boz rəngdə göstərilməklə axtarış etmək üçün yenidən klikləyin.", + messageKey: "Mesaj açarı", + messageTag: "Mesaj etiketi", + exchange: "Mübadilə qovşağı", + exchangePlaceholder: "Boş = standart mübadilə qovşağı", + exchangeHint: "Təyin edildikdə mesaj birbaşa növbəyə deyil, bu mübadilə qovşağına dərc edilir.", + routingKey: "Marşrutlaşdırma açarı", + optional: "İstəyə bağlı", + messageContent: "Mesaj məzmunu", + formatJson: "JSON-u formatla", + messageHeaders: "Başlıqlar", + headersPlaceholder: "açar: dəyər (hər sətirdə bir ədəd)", + sending: "Göndərilir...", + sendMessage: "Mesaj göndər", + messageList: "Mesajlar", + loadMessages: "Mesajları yüklə", + loading: "Yüklənir...", + peekDefaultHint: "Bölmə göstərilmədikdə bütün bölmələri ən əvvəldən oxuyur.", + count: "Say", + advancedFilter: "Əlavə (bölmə / sürüşmə)", + partition: "Bölmə", + partitionPlaceholderAll: "Boş = hamısı", + offset: "Sürüşmə", + offsetPlaceholderEarliest: "Boş = ən erkən", + offsetPlaceholderRequired: "Tələb olunur", + startPosition: "Başlanğıc mövqe", + kafkaLatest: "Son N mesaj (standart)", + kafkaEarliest: "Ən erkən mesajlar", + kafkaOffset: "Sürüşmədən başlayaraq", + timeOrder: "Vaxta görə sıralama", + newestFirst: "Əvvəlcə ən yenilər", + oldestFirst: "Əvvəlcə ən köhnələr", + kafkaLatestHint: "Hər bölmədən N-ə qədər namizəd mesaj oxuyur, sonra bütün mövzu üzrə vaxt nişanına əsasən ən yeni N mesajı seçir.", + kafkaEarliestHint: "Hər seçilmiş bölmədə mövcud olan ən erkən mesajdan başlayaraq oxuyur.", + kafkaOffsetHint: "Seçilmiş bölmədə göstərilən sürüşmədən başlayaraq oxuyur; boş saxlandıqda bütün bölmələrdən oxuyur.", + messagesLoading: "Mesajlar yüklənir...", + noMessages: "Mesaj yoxdur", + filterLoadedPlaceholder: "Yüklənmiş mesajları süz", + filterLoadedCount: "{matched} / {loaded}", + noMatchingMessages: "Yüklənmiş mesajlardan heç biri bu süzgəcə uyğun gəlmir", + peekIncomplete: "Broker anlıq görüntünü tamamlamadığı üçün mesaj nəticələri natamamdır.", + selectTopicBeforeLoad: "Mesajları yükləməzdən əvvəl mövzu seçin", + partitionMustBeNonNegativeInt: "Bölmə ≥ 0 olan tam ədəd olmalıdır; bütün bölmələr üçün boş saxlayın", + offsetMustBeNonNegativeInt: "Sürüşmə ≥ 0 olan tam ədəd olmalıdır; ən erkən mövqe üçün boş saxlayın", + offsetMustBeNonNegativeIntRequired: "Sürüşmə ≥ 0 olan tam ədəd olmalıdır", + offsetRequiredForOffset: "Müəyyən sürüşmədən oxuyarkən sürüşmə tələb olunur", + metaPartition: "bölmə {partition}", + metaOffset: "sürüşmə {offset}", + metaKey: "açar {key}", + jsonBodyPlaceholder: "{'{'}\"key\": \"value\"{'}'}", + queryTitle: "Mesaj sorğusu", + queryTabTopic: "Mövzu", + queryTabKey: "Mesaj açarı", + queryTabMsgId: "Mesaj ID-si", + queryTopicLabel: "Mövzu", + selectTopicPlaceholder: "Mövzu seç", + noQueryResults: "Meyarlara uyğun nəticə tapılmadı", + tableMessageId: "Mesaj ID-si", + tableTag: "Etiket", + tableKey: "Açar", + tableStoreTime: "Saxlanma vaxtı", + tableOperation: "Əməliyyat", + viewDetails: "Bax", + messageDetails: "Mesaj təfərrüatları", + search: "Axtarış", + messageQuery: "Mesaj sorğusu", + queryByMsgId: "Mesaj ID-sinə görə", + queryByKey: "Açara görə", + queryByTopic: "Mövzu və vaxta görə", + msgId: "Mesaj ID-si", + msgIdPlaceholder: "məs., 7F000001...", + msgIdRequired: "Mesaj ID-si tələb olunur", + queryKey: "Mesaj açarı", + queryKeyPlaceholder: "Biznes açarı", + queryKeyRequired: "Mesaj açarı tələb olunur", + beginTime: "Başlanğıc vaxtı", + endTime: "Bitmə vaxtı", + maxNum: "Maksimum mesaj sayı", + invalidTimeRange: "Başlanğıc və ya bitmə vaxtı yanlışdır", + endTimeMustBeAfterBegin: "Bitmə vaxtı başlanğıc vaxtından sonra olmalıdır", + query: "Sorğula", + querying: "Sorğulanır...", + messageOverview: "Ümumi baxış", + messageBody: "Məzmun", + resendMessage: "Yenidən göndər", + payloadCopied: "Kopyalandı", + dlqConsumerGroupPlaceholder: "İstehlakçı qrupu (istəyə bağlı)", + }, + mqMonitoring: { + title: "Monitorinq", + autoRefresh: "Avtomatik yeniləmə", + refreshInterval5s: "5s", + refreshInterval10s: "10s", + refreshInterval30s: "30s", + refreshInterval60s: "60s", + refreshing: "Yenilənir...", + refreshNow: "Yenilə", + selectTopicFirst: "Əvvəlcə mövzu seçin", + loadingStats: "Monitorinq məlumatları yüklənir...", + kafkaTopicOverview: "Kafka mövzusuna ümumi baxış", + partitionCount: "Bölmələr", + replicationFactor: "Replikasiya əmsalı", + messageCount: "Mesajlar", + logEndOffset: "Jurnalın son sürüşməsi", + offsetAndReplicaStatus: "Sürüşmələr və replikalar", + beginOffset: "Başlanğıc sürüşməsi", + leaderCount: "Liderlər", + isrHealthyPartitions: "ISR sağlamdır", + noLeaderPartitions: "Lider yoxdur", + kafkaPartitionDetails: "Kafka bölmələri", + noKafkaPartitionMetrics: "Kafka cavabında bölmə göstəriciləri yoxdur", + tablePartition: "Bölmə", + tableBeginOffset: "Başlanğıc sürüşməsi", + tableLogEndOffset: "Jurnalın son sürüşməsi", + tableMessageCount: "Mesajlar", + tableLeader: "Lider", + tableReplicas: "Replikalar", + tableIsr: "ISR", + tableStatus: "Vəziyyət", + statusNoLeader: "Lider yoxdur", + statusIsrIncomplete: "ISR natamamdır", + statusHealthy: "Sağlam", + messagesLoading: "Mesajlar yüklənir...", + noMessages: "Mesaj yoxdur", + messageRate: "Mesaj sürəti", + inboundRate: "Daxilolma sürəti", + outboundRate: "Çıxış sürəti", + inboundThroughput: "Giriş ötürmə qabiliyyəti", + outboundThroughput: "Çıxış ötürmə qabiliyyəti", + rateTrend: "Sürət dinamikası", + backlogTrend: "Gözləyən mesajların dinamikası", + consumerLag: "İstehlakçı gecikməsi", + storageAndBacklog: "Saxlama və gözləyən mesajlar", + storageSize: "Saxlama ölçüsü", + backlogSize: "Gözləyən mesajların ölçüsü", + backlogMessageCount: "Gözləyən mesajlar", + messageCounters: "Mesaj sayğacları", + publishedMessages: "Dərc edilmiş", + consumedMessages: "İstehlak edilmiş", + connectionStats: "Əlaqələr", + subscriptionCount: "Abunəliklər", + producerCount: "İstehsalçılar", + partitionDetails: "Bölmələr", + tableInbound: "Giriş", + tableOutbound: "Çıxış", + tableInboundThroughput: "Giriş ötürmə qabiliyyəti", + tableOutboundThroughput: "Çıxış ötürmə qabiliyyəti", + tableBacklogMessages: "Gözləyən mesajlar", + tableBacklogSize: "Gözləyən mesajların ölçüsü", + tableProducers: "İstehsalçılar", + tableSubscriptions: "Abunəliklər", + producers: "İstehsalçılar", + subscriptions: "Abunəliklər", + tableName: "Ad", + tableRate: "Sürət", + tableAddress: "Ünvan", + tableType: "Növ", + tableBacklog: "Gözləyən mesajlar", + tableConsumers: "İstehlakçılar", + noProducers: "İstehsalçı yoxdur", + noSubscriptions: "Abunəlik yoxdur", + noPartitionMetricsFromBroker: "Brokerdən bölmə göstəriciləri yoxdur", + nonPartitionedTopicNoDetails: "Bölməsiz mövzuların bölmə təfərrüatları yoxdur", + healthIndicators: "Sağlamlıq", + messageFlow: "Mesaj axını", + backlogStatus: "Gözləyən mesajlar", + producersLabel: "İstehsalçılar", + subscriptionsLabel: "Abunəliklər", + flowActive: "Aktiv", + flowIdle: "Boşda", + backlogNormal: "Adi", + backlogHigh: "Yüksək", + producerConnected: "Qoşulub", + producerDisconnected: "Yoxdur", + subscriptionActive: "Aktiv", + subscriptionNone: "Yoxdur", + chartLegendIn: "Giriş", + chartLegendOut: "Çıxış", + chartLegendMessages: "Mesajlar", + chartLegendBytes: "Baytlar", + chartLegendConsumerLag: "İstehlakçı gecikməsi", + chartAxisMsgPerSec: "mesaj/san", + chartAxisMsg: "mesaj", + chartAxisBytes: "bayt", + chartAxisMs: "ms", + metaPartition: "bölmə {partition}", + metaOffset: "sürüşmə {offset}", + metaKey: "açar {key}", + rocketmqTopicOverview: "RocketMQ mövzusuna ümumi baxış", + rocketmqQueueDetails: "Növbə sürüşməsinin təfərrüatları", + queueCount: "Növbələr", + brokerCount: "Brokerlər", + tableQueue: "Növbə", + tableBroker: "Broker", + noRocketMqQueueMetrics: "Növbə göstəriciləri qaytarılmadı", + }, + mqTenants: { + title: "İcarəçi idarəetməsi", + createTenant: "İcarəçi yarat", + notSupported: "Bu mesajlaşma sistemi üçün icarəçi idarəetməsi dəstəklənmir", + readOnly: "Bu əlaqə yalnız oxumaq üçündür və yazma əməliyyatlarını yerinə yetirə bilməz.", + loading: "Yüklənir...", + name: "Ad", + adminRoles: "İnzibatçı rolları", + allowedClusters: "İcazə verilən klasterlər*", + actions: "Əməliyyatlar", + none: "Yoxdur", + edit: "Redaktə et", + delete: "Sil", + createDialogTitle: "İcarəçi yarat", + editDialogTitle: "İcarəçini redaktə et: {name}", + tenantName: "İcarəçi adı*", + tenantNamePlaceholder: "məs., my-tenant", + addRolePlaceholder: "Rol əlavə et", + add: "Əlavə et", + selectClustersPlaceholder: "İcazə verilən klasterləri seçin", + noClustersDetectedPlaceholder: "Klaster aşkarlanmadı; əl ilə əlavə edin", + clustersNotReturned: "Əlaqə klaster siyahısını qaytarmadı", + addClusterPlaceholder: "Klasteri əl ilə əlavə edin", + clustersRequiredHint: "Ən azı bir icazə verilən klaster seçin və ya əlavə edin", + cancel: "Ləğv et", + create: "Yarat", + save: "Yadda saxla", + confirmDelete: '"{name}" icarəçisi silinsin? Bu əməliyyatı geri qaytarmaq mümkün deyil.', + tenantNameRequired: "İcarəçi adı tələb olunur", + allowedClustersRequired: "İcazə verilən klasterlər tələb olunur", + }, + mqNamespaces: { + title: "Ad məkanlarının idarə edilməsi", + createNamespace: "Ad məkanı yarat", + notSupported: "Bu mesajlaşma sistemində ad məkanlarının idarə edilməsi dəstəklənmir", + selectTenantFirst: "Əvvəlcə icarəçi seçin", + readOnly: "Bu əlaqə yalnız oxuma üçündür və yazma əməliyyatlarını yerinə yetirə bilməz.", + loading: "Yüklənir...", + name: "Ad", + tenant: "İcarəçi", + adminRoles: "İnzibatçı rolları", + actions: "Əməliyyatlar", + none: "Yoxdur", + editRoles: "Rolları redaktə et", + delete: "Sil", + createDialogTitle: "Ad məkanı yarat", + namespaceName: "Ad məkanının adı*", + namespaceNamePlaceholder: "məs., my-namespace", + cancel: "Ləğv et", + create: "Yarat", + confirmDelete: '"{name}" ad fəzası silinsin? Bu əməliyyatı geri qaytarmaq mümkün deyil.', + namespaceNameRequired: "Ad məkanının adı tələb olunur", + }, + mqSubscriptions: { + title: "Abunəliklərin idarə edilməsi", + createSubscription: "Abunəlik yarat", + selectTopicFirst: "Əvvəlcə mövzu seçin", + searchPlaceholder: "Abunəlik adını axtarın", + subscribedTopics: "Abunə olunan mövzular", + readOnly: "Bu əlaqə yalnız oxuma üçündür və yazma əməliyyatlarını yerinə yetirə bilməz.", + loading: "Yüklənir...", + refresh: "Yenilə", + refreshing: "Yenilənir...", + enriching: "Onlayn təfərrüatlar yüklənir...", + truncatedHint: "İlk {count} istehlakçı qrupu göstərilir (siyahı məhdudlaşdırılıb). Digərlərini tapmaq üçün axtarışı daraldın.", + enrichFailedHint: "Onlayn üzv/mövzu təfərrüatları yüklənə bilmədi ({error}). Yalnız sürətli siyahı göstərilir.", + noSubscriptions: "Bu mövzu üçün abunəlik yoxdur", + noConsumerGroups: "İstehlakçı qrupu yoxdur", + noMatches: "Uyğun istehlakçı qrupu yoxdur", + backlogPartialFailed: "{count} mövzu üçün gözləyən mesajlar yüklənə bilmədi: {error}", + viewDetail: "Təfərrüatlar", + editConfig: "Konfiqurasiya", + save: "Yadda saxla", + consumerDetailTitle: "İstehlakçı qrupunun təfərrüatları: {name}", + consumerConfigTitle: "İstehlakçı qrupunun konfiqurasiyası: {name}", + consumerOverview: "Ümumi baxış", + consumerTerminals: "Onlayn terminallar", + consumerConsumeDetail: "İstehlak təfərrüatları", + noOnlineConsumers: "Onlayn istehlakçı yoxdur", + noConsumeDetail: "İstehlak təfərrüatları yoxdur", + noQueueConsumeProgress: "Növbə istehlakının gedişatı yoxdur", + operationTopic: "Mövzu", + consumeDelay: "Gözləyən mesajlar", + invalidTopicScope: "Mövzunun əhatə dairəsi yanlışdır", + lastConsumeTime: "Son istehlak vaxtı", + broker: "broker", + queue: "Növbə", + consumerClient: "İstehlakçı müştərisi", + brokerOffset: "Broker sürüşməsi", + consumerOffset: "İstehlakçı sürüşməsi", + diffTotal: "Ümumi fərq", + lastTimestamp: "Son vaxt damğası", + consumeEnable: "İstehlak aktivdir", + consumeBroadcastEnable: "Yayım istehlakı aktivdir", + consumeFromMinEnable: "Minimum sürüşmədən istehlak et", + consumeMessageOrderly: "Ardıcıl istehlak", + retryQueueNums: "Təkrar cəhd növbələrinin sayı", + retryMaxTimes: "Maksimum təkrar cəhd sayı", + brokerId: "Broker ID-si", + whichBrokerWhenConsumeSlowly: "Yavaş istehlak brokerinin ID-si", + subscriptionName: "Abunəlik adı", + type: "Növ", + mode: "Rejim", + typeFilter: "Növ süzgəci", + rocketmqGroupType: { + normal: "Adi", + fifo: "Ardıcıl", + system: "Sistem", + unknown: "Naməlum", + }, + rocketmqGroupMode: { + clustering: "Klaster", + broadcasting: "Yayım", + }, + backlog: "Gözləyən mesajlar", + consumeRate: "İstehlak sürəti", + consumers: "İstehlakçılar", + actions: "Əməliyyatlar", + consumerCount: "{count} istehlakçı", + msgRate: "{rate} mesaj/san", + resetCursor: "Kursoru sıfırla", + skipMessages: "Mesajları ötür", + clearBacklog: "Gözləyən mesajları təmizlə", + peek: "Mesajlara bax", + expireMessages: "Mesajların müddətini bitir", + delete: "Sil", + createDialogTitle: "Abunəlik yarat", + topic: "Mövzu", + subscriptionNameLabel: "Abunəlik adı*", + subscriptionNamePlaceholder: "məs., my-subscription", + startPosition: "Başlanğıc mövqeyi", + startFromEarliest: "Ən əvvəlki mesajdan (Earliest)", + startFromLatest: "Ən son mesajdan (Latest)", + resetDialogTitle: "Kursoru sıfırla: {name}", + resetTo: "Sıfırlama mövqeyi", + earliest: "Ən əvvəlki mesaj (Earliest)", + latest: "Ən son mesaj (Latest)", + timestamp: "Konkret vaxt damğası", + timestampMs: "Vaxt damğası (ms)", + partitionOffset: "Bölmə və mütləq sürüşmə", + partition: "Bölmə", + offset: "Sürüşmə", + nonNegativeIntegerRequired: "Bölmə və sürüşmə mənfi olmayan tam ədədlər olmalıdır", + currentTime: "Cari vaxt: {time}", + reset: "Sıfırla", + skipDialogTitle: "Mesajları ötür: {name}", + skipMode: "Ötürmə rejimi", + skipCount: "Göstərilən sayda ötür", + skipAll: "Bütün gözləyən mesajları ötür", + skipCountLabel: "Ötürüləcək mesaj sayı", + skip: "Ötür", + peekDialogTitle: "Mesajlara bax: {name}", + count: "Say", + noPeekMessages: "Baxılacaq mesaj yoxdur", + close: "Bağla", + expireDialogTitle: "Mesajların müddətini bitir: {name}", + expireSeconds: "Müddətin bitmə vaxtı (saniyə)", + expireHint: "{seconds} saniyədən köhnə bütün mesajlar silinəcək", + expire: "Müddəti bitir", + cancel: "Ləğv et", + create: "Yarat", + confirmDelete: '"{name}" abunəliyi silinsin? Bu əməliyyatı geri qaytarmaq mümkün deyil.', + confirmClearBacklog: '"{name}" abunəliyi üçün yığılmış bütün mesajlar təmizlənsin?', + subscriptionNameRequired: "Abunəlik adı tələb olunur", + peekMessageKey: "açar={key}", + }, + mqKafkaConsumerGroups: { + title: "İstehlakçı qrupları", + searchPlaceholder: "Qrup və ya mövzu axtarın", + refresh: "Yenilə", + refreshing: "Yenilənir...", + loading: "İstehlakçı qrupları yüklənir...", + empty: "İstehlakçı qrupu yoxdur", + noMatches: "Uyğun istehlakçı qrupu yoxdur", + groupId: "Qrup ID-si", + state: "Vəziyyət", + members: "Üzvlər", + topics: "Mövzular", + totalLag: "Ümumi gecikmə", + partialData: "Bəzi göstəricilər əlçatan deyil", + partitionDetail: "Bölmə gecikməsinin təfərrüatları", + noCommittedOffsets: "Təsdiqlənmiş sürüşmə və ya təyin edilmiş bölmə yoxdur", + topic: "Mövzu", + openTopicSubscriptions: "{topic} üçün abunəlikləri aç", + partition: "Bölmə", + committedOffset: "Təsdiqlənmiş sürüşmə", + logEndOffset: "Jurnalın son sürüşməsi", + lag: "Gecikmə", + }, + mqClients: { + unloadTopicUnsupportedKafka: "Kafka mövzuların yaddaşdan çıxarılmasını dəstəkləmir", + title: "İstehsalçılar / istehlakçılar", + unloadTopic: "Mövzunu yaddaşdan çıxar", + unloading: "Yaddaşdan çıxarılır...", + refresh: "Yenilə", + refreshing: "Yenilənir...", + selectTopicFirst: "Əvvəlcə mövzu seçin", + rocketmqClusterHint: "Brokerdəki bütün onlayn istehsalçıları və istehlakçı qrupu terminallarını göstərir. Mövzuya aid müştəri təfərrüatları üçün mövzu seçin.", + confirmUnload: "Bu mövzu yaddaşdan çıxarılsın? Aktiv istehsalçılar və istehlakçılar yenidən qoşulacaq.", + aggregateTopic: "Birləşdirilmiş mövzu", + kafkaPartitionStatus: "Kafka bölməsinin vəziyyəti", + partitionCount: "{count} bölmə", + partition: "Bölmə", + beginOffset: "Başlanğıc sürüşməsi", + latestOffset: "Son sürüşmə", + messageCount: "Mesajlar", + leader: "Lider", + replicas: "Replikalar", + isr: "ISR", + partitionClients: "Bölmə müştəriləri", + inboundRate: "Daxilolma sürəti", + outboundRate: "Çıxış sürəti", + producers: "İstehsalçılar", + subscriptions: "Abunəliklər", + consumers: "İstehlakçılar", + activeProducers: "Aktiv istehsalçılar", + noActiveProducers: "Aktiv istehsalçı yoxdur", + name: "Ad", + id: "ID", + address: "Ünvan", + version: "Versiya", + rate: "Sürət", + throughput: "Ötürmə qabiliyyəti", + rateValue: "{value} mesaj/san", + activeConsumers: "Aktiv istehlakçılar", + noSubscriptions: "Bu mövzunun abunəliyi yoxdur", + noConsumersOnPartition: "Bu bölmə abunəliyində aktiv istehlakçı yoxdur", + noConsumersOnSubscription: "Bu abunəlikdə aktiv istehlakçı yoxdur", + permits: "İcazələr", + }, + mqPolicies: { + title: "Siyasətlərin idarə edilməsi", + refresh: "Yenilə", + refreshing: "Yenilənir...", + selectTopicFirst: "Əvvəlcə mövzu seçin", + selectNamespaceOrTopic: "Ad məkanı və ya mövzu seçin", + readOnly: "Bu əlaqə yalnız oxuma üçündür və yazma əməliyyatlarını yerinə yetirə bilməz.", + readonlyHint: "Bu əlaqə yalnız oxuma üçündür; siyasətlərin redaktəsi deaktivdir.", + publishRate: "Dərcetmə sürəti həddi", + msgsPerSecond: "Mesaj / saniyə", + bytesPerSecond: "Bayt / saniyə", + save: "Yadda saxla", + dispatchRate: "Göndərmə sürəti həddi", + msgsPerPeriod: "Mesaj / dövr", + bytesPerPeriod: "Bayt / dövr", + periodSeconds: "Dövr (saniyə)", + subscribeRate: "Abunəolma sürəti həddi", + msgsPerConsumerPerPeriod: "Hər istehlakçı üçün mesaj / dövr", + backlogQuota: "Gözləyən mesajların kvotası", + sizeLimitBytes: "Ölçü həddi (bayt)", + timeLimitSeconds: "Vaxt həddi (saniyə)", + policy: "Siyasət", + type: "Növ", + backlogPolicyProducerRequestHold: "İstehsalçı sorğularını gözlət", + backlogPolicyProducerException: "İstisna ilə rədd et", + backlogPolicyConsumerBacklogEviction: "İstehlakçının gözləyən mesajlarını çıxar", + retention: "Mesajların saxlanması", + retentionTimeMinutes: "Saxlama müddəti (dəqiqə)", + retentionSizeMb: "Saxlama ölçüsü (MB)", + effectivePolicies: "Qüvvədə olan siyasətlər", + savedNotice: "{policy} yadda saxlanıldı", + }, + mqPermissions: { + title: "İcazələr", + refresh: "Yenilə", + refreshing: "Yenilənir...", + selectNamespaceOrTopic: "Əvvəlcə ad məkanı və ya mövzu seçin", + readOnly: "Bu əlaqə yalnız oxuma üçündür və yazma əməliyyatlarını yerinə yetirə bilməz.", + readonlyHint: "Bu əlaqə yalnız oxuma üçündür; icazə vermə və geri alma deaktivdir.", + grantRole: "Rol ver", + roleName: "Rol adı", + roleNamePlaceholder: "məs., app-producer", + actions: "Əməliyyatlar", + grant: "İcazə ver", + currentPermissions: "Cari icazələr", + role: "Rol", + operations: "Əməliyyatlar", + token: "Token", + revoke: "Geri al", + noPermissions: "İcazə qeydi yoxdur", + clientTokenTitle: "Müştəri tokeni: {role}", + missingSigningKeyTitle: "Token imzalama açarı konfiqurasiya edilməyib", + missingSigningKeyMessage: "Bu MQ əlaqəsində broker tokeninin imzalama açarı konfiqurasiya edilməyib, buna görə müştəri tokenləri verilə bilməz.", + missingSigningKeyDetail: 'Əlaqəni redaktə edin və "Broker tokeninin imzalanması" parametrini HS256 SECRET və ya RS256 PRIVATE olaraq təyin edin, sonra tokenlər yaratmazdan əvvəl imzalama açarını daxil edin.', + tokenShowOnceWarning: "Token yalnız bir dəfə göstərilir. Onu dərhal kopyalayıb saxlayın.", + copyToken: "Tokeni kopyala", + issueNewToken: "Yeni token ver", + neverExpires: "Müddəti heç vaxt bitmir", + expiryDays: "Etibarlılıq müddəti (gün)", + note: "Qeyd", + notePlaceholder: "məs., rt-erp-server üçün", + issuing: "Verilir...", + generateToken: "Token yarat", + tokenRevokeHint: "Rol icazələrinin geri alınması verilmiş JWT-ləri dərhal etibarsız etmir; müddətin bitməsini gözləyin və ya brokerin imzalama açarını dəyişdirin.", + issueRecords: "Verilmə qeydləri", + time: "Vaxt", + algorithm: "Alqoritm", + expires: "Müddətin bitməsi", + fingerprint: "Barmaq izi", + noteColumn: "Qeyd", + unlimited: "Daimi", + loading: "Yüklənir...", + noIssueRecords: "Verilmə qeydi yoxdur", + close: "Bağla", + kafkaAuthorizerNotConfigured: "Bu Kafka klasterində səlahiyyət yoxlayıcısı konfiqurasiya edilməyib. ACL dəstəyi üçün broker konfiqurasiyasına authorizer.class.name əlavə edin.", + kafkaAuthorizerDisabled: "Bu Kafka klasterində səlahiyyət yoxlayıcısı aktiv deyil. İcazə vermək üçün broker konfiqurasiyasında səlahiyyət yoxlayıcısını aktivləşdirin.", + roleNameRequired: "Rol adı tələb olunur", + selectAtLeastOneAction: "Ən azı bir əməliyyat seçin", + grantedRole: "{role} verildi", + confirmRevoke: '"{role}" rolunun icazələri ləğv edilsin?', + revokedRole: "{role} geri alındı", + roleNameEmpty: "Rol adı boş ola bilməz", + expiryMustBePositive: "Etibarlılıq müddəti 0 gündən çox olmalıdır", + }, + mqBroker: { + title: "Broker klasteri", + autoRefresh: "Avtomatik yeniləmə", + refreshInterval5s: "5 san", + refreshInterval10s: "10 san", + refreshInterval30s: "30 san", + refreshInterval60s: "60 san", + refreshing: "Yenilənir...", + refreshNow: "İndi yenilə", + loading: "Yüklənir...", + clusterOverview: "Klasterə ümumi baxış", + clusterId: "Klaster ID-si", + unknown: "Naməlum", + brokerCount: "Brokerlər", + controller: "İdarəedici", + controllerNode: "Qovşaq {id} · {host}", + brokerNodes: "Broker qovşaqları", + brokerName: "Broker adı", + brokerEndpoints: "Brokerin son nöqtələri", + nodeId: "Qovşaq ID-si", + host: "Host", + addHost: "Host əlavə et", + port: "Port", + rack: "Rəf", + role: "Rol", + roleController: "İdarəedici", + roleFollower: "İzləyici", + roleMaster: "Əsas", + roleSlave: "Tabe", + noBrokerNodes: "Broker qovşağı haqqında məlumat yoxdur", + clusterTitle: "Klaster", + }, + mqDlq: { + title: "Çatdırılmamış mesajlar növbəsi", + refresh: "Yenilə", + refreshing: "Yenilənir...", + loading: "Yüklənir...", + selectContext: "Əvvəlcə ad məkanı konteksti seçin", + selectTopic: "DLQ mövzusu seçin", + topic: "DLQ mövzusu", + consumerGroup: "İstehlakçı qrupu", + groupPlaceholder: "İstəyə bağlı baxış qrupu", + queryByKey: "Mesaj açarı ilə sorğu ver", + queryKey: "Mesaj açarı", + queryKeyPlaceholder: "Axtarılacaq açar", + loadMessages: "Mesajları yüklə", + loadingMessages: "Mesajlar yüklənir...", + noDlqTopics: "DLQ mövzusu tapılmadı. Onları siyahıda göstərmək üçün Mövzular vərəqində DLQ növ süzgəcini aktivləşdirin.", + noMessages: "Mesaj yoxdur", + }, + mqTrace: { + title: "Mesajın izlənməsi", + msgId: "Mesaj ID-si", + msgIdPlaceholder: "İlkin mesaj ID-si", + msgIdRequired: "Mesaj ID-si tələb olunur", + queryKeyRequired: "Mesaj açarı tələb olunur", + selectTopicBeforeQuery: "İzləmə qeydlərini sorğulamadan əvvəl mövzu seçin", + traceTopic: "İzləmə mövzusu", + traceTopicPlaceholder: "RMQ_SYS_TRACE_TOPIC", + query: "İzləməni sorğula", + querying: "Sorğulanır...", + noTrace: "İzləmə qeydi tapılmadı", + searchHint: "Əvvəlcə mesajları axtarın, sonra İzləməyə bax düyməsinə klikləyin", + viewTrace: "İzləməyə bax", + detailTitle: "Mesajın izlənmə təfərrüatları", + typePub: "Pub", + typeSubBefore: "SubBefore", + typeSubAfter: "SubAfter", + typeEndTransaction: "EndTransaction", + typeUnknown: "Naməlum", + statusSuccess: "Uğurlu", + statusFail: "Uğursuz", + fieldRegionId: "Region", + fieldGroup: "Qrup", + fieldTopic: "Mövzu", + fieldMsgId: "Mesaj ID-si", + fieldTags: "Etiketlər", + fieldKeys: "Açarlar", + fieldStoreHost: "Saxlama hostu", + fieldClientHost: "Müştəri hostu", + fieldBodyLength: "Gövdənin uzunluğu", + fieldCostTime: "Sərf olunan vaxt", + fieldMsgType: "Mesaj növü", + fieldOffsetMsgId: "Sürüşmə mesajının ID-si", + fieldRequestId: "Sorğu ID-si", + fieldRetryTimes: "Təkrar cəhd", + fieldContextCode: "Kontekst kodu", + rawPayload: "Xam izləmə", + traceTopicRouteMissing: + "İzləmə mövzusunun NameServer üzərində marşrutu yoxdur (CODE: 17).\n\nÜmumi səbəblər:\n1. Broker izləməsi deaktivdir: broker.conf faylında traceTopicEnable=true təyin edin və brokeri yenidən başladın\n2. İstehsalçı/istehlakçı izləməsi deaktivdir: setEnableTrace(true) çağırın\n3. Fərdi izləmə mövzusu istifadə olunur: yuxarıdan düzgün izləmə mövzusunu seçin", + }, + mqRaw: { + title: "Xam API", + sending: "Göndərilir...", + sendRequest: "Sorğu göndər", + readOnlyHint: "Bu əlaqə yalnız oxuma üçündür; yalnız GET, HEAD və OPTIONS sorğularına icazə verilir.", + commonEndpoints: "Ümumi son nöqtələr", + fillFromSelection: "Sorğunu cari seçimdən doldur", + expand: "Genişləndir", + collapse: "Yığ", + method: "Metod", + path: "Yol", + pathPlaceholder: "/admin/v2/...", + queryParams: "Sorğu parametrləri", + queryPlaceholder: "key=value, hər sətirdə bir cüt", + jsonBody: "JSON gövdəsi", + format: "Formatlaşdır", + bodyPlaceholder: "məs., {'{'}\"key\":\"value\"{'}'}", + response: "Cavab", + textResponse: "Mətn cavabı", + noRequestYet: "Hələ sorğu göndərilməyib", + readOnly: "Bu əlaqə yalnız oxuma üçündür və yazma əməliyyatlarını yerinə yetirə bilməz.", + pathRequired: "Sorğu yolu tələb olunur", + jsonBodyInvalid: "Yanlış JSON gövdəsi: {error}", + presetBrokerVersion: "Broker versiyası", + presetBrokerVersionDesc: "Broker versiyasının mətn dəyəri", + presetClusters: "Klaster siyahısı", + presetClustersDesc: "Konfiqurasiya edilmiş Pulsar klasterlərini siyahıla", + presetTenant: "İcarəçinin təfərrüatları", + presetTenantDesc: "adminRoles / allowedClusters dəyərlərinə bax", + presetNamespacePolicies: "Ad məkanı siyasətləri", + presetNamespacePoliciesDesc: "Ad məkanı siyasətlərinin xam quruluşu", + presetBundles: "Dəstə siyahısı", + presetBundlesDesc: "Ad məkanı dəstələrinin paylanması", + presetTopicInternalStats: "Mövzunun daxili statistikası", + presetTopicInternalStatsDesc: "Jurnal / kursor / gözləyən mesajların təfərrüatları", + presetPartitionedStats: "Bölmə göstəriciləri", + presetPartitionedStatsDesc: "Hər bölmə üzrə sürətlər, istehsalçılar və istehlakçılar", + presetSchema: "Ən son sxem", + presetSchemaDesc: "Cari mövzunun sxem tərifi", + }, + nacos: { + openConsole: "Konsolu aç", + consoleUrlMissing: "Brauzerdə açmaq üçün Nacos veb konsolunun URL-ini konfiqurasiya edin.", + consoleOpenFailed: "Nacos konsolu açıla bilmədi.", + enterZenMode: "İş sahəsini genişləndir", + exitZenMode: "Genişləndirilmiş iş sahəsindən çıx", + dashboard: "İdarəetmə paneli", + dashboardTitle: "Əməliyyatlar paneli", + dashboardUpdatedAt: "Yeniləndi: {time}", + dashboardAutoRefresh: "Avtomatik yeniləmə", + dashboardOff: "Söndürülüb", + dashboardNamespaces: "Ad məkanları", + dashboardConfigs: "Konfiqurasiyalar", + dashboardServices: "Xidmətlər", + dashboardInstances: "Nüsxələr", + dashboardClients: "Müştərilər", + dashboardConnections: "{count} əlaqə", + dashboardNodes: "Sağlam qovşaqlar", + dashboardCpu: "CPU", + dashboardMemory: "Yaddaş", + dashboardLoad: "Yük {value}", + dashboardCountsChart: "Xidmətlərin aşkarlanması", + dashboardResourcesChart: "Resurs istifadəsi", + dashboardClusterNodes: "Klaster qovşaqları", + dashboardSite: "Sayt", + dashboardLastRefresh: "Son yeniləmə", + dashboardNoNodes: "Klaster qovşaqlarının təfərrüatları əlçatan deyil", + dashboardPartial: "{count} idarəetmə paneli mənbəyi əlçatan deyil", + dashboardMemoryUsed: "İstifadə olunan dinamik yaddaş / yaddaş", + dashboardMemoryMax: "Maksimum {value}", + dashboardRss: "RSS yaddaşı", + dashboardVms: "Virtual yaddaş", + dashboardJvmThreads: "JVM fon axınları", + dashboardGcPauses: "GC fasilələri", + dashboardTrafficSection: "Sorğu trafiki", + dashboardRequestRateChart: "Saniyədə HTTP / gRPC sorğuları", + dashboardLatencyChart: "Sorğu gecikməsi", + dashboardHttpQps: "HTTP QPS", + dashboardGrpcQps: "gRPC QPS", + dashboardHttpAverage: "HTTP ortalaması", + dashboardHttpP50: "HTTP P50", + dashboardHttpP95: "HTTP P95", + dashboardHttpP99: "HTTP P99", + dashboardGrpcAverage: "gRPC ortalaması", + dashboardGrpcP50: "gRPC P50", + dashboardGrpcP95: "gRPC P95", + dashboardGrpcP99: "gRPC P99", + dashboardReliabilitySection: "Etibarlılıq", + dashboardErrorRateChart: "Sorğu xətalarının tezliyi", + dashboardExecutorChart: "gRPC icraçısı", + dashboardHttpErrors: "HTTP xətaları", + dashboardGrpcErrors: "gRPC xətaları", + dashboardExecutorPool: "Hovuzun ölçüsü", + dashboardExecutorActive: "Aktiv", + dashboardExecutorQueue: "Növbədə", + dashboardConfigSection: "Konfiqurasiya mərkəzi", + dashboardConfigRateChart: "Saniyədə konfiqurasiya əməliyyatları", + dashboardConfigStateChart: "Dinləyicilər və gözləyən işlər", + dashboardConfigGets: "Almalar", + dashboardConfigPublishes: "Dərcetmələr", + dashboardLongPolling: "Uzunmüddətli sorğulama", + dashboardListenerClients: "Dinləyici müştərilər", + dashboardListenerKeys: "Dinləyici açarları", + dashboardNotifyTasks: "Bildiriş tapşırıqları", + dashboardNotifyClientTasks: "Müştəri bildiriş tapşırıqları", + dashboardDumpTasks: "Yaddaş surətini çıxarma tapşırıqları", + dashboardNamingSection: "Xidmətlərin aşkarlanması", + dashboardNamingStateChart: "Xidmətlər, nüsxələr və müştərilər", + dashboardPushRateChart: "Saniyədə göndərmələr", + dashboardPushDetailChart: "Göndərmə gecikməsi və gözləyən işlər", + dashboardPushAverage: "Orta gecikmə", + dashboardPushMaximum: "Maksimum gecikmə", + dashboardPushPending: "Gözləyən tapşırıqlar", + dashboardSubscribers: "Abunəçilər", + dashboardPushes: "Göndərmələr", + dashboardFailedPushes: "Uğursuz göndərmələr", + dashboardEmptyPushes: "Boş göndərmələr", + configs: "Konfiqurasiyalar", + services: "Xidmətlər", + loading: "Yüklənir...", + accessControlSidebarLabel: "İstifadəçilər və rollar", + accessControlTitle: "Girişə nəzarət", + accessControlDescription: "Nacos istifadəçilərini və rol təyinatlarını idarə edin", + users: "İstifadəçilər", + roleBindings: "Rollar", + accessControlUnavailable: "Bu əlaqə üçün istifadəçi və rolların idarə edilməsi əlçatan deyil.", + accessPermissionEndpointUnavailable: "Ad məkanı icazələri cari hesab üçün əlçatan deyil. İstifadəçi və rol təyinatları uyğunluq rejimində görünür.", + searchUsers: "İstifadəçiləri axtar", + filterUsername: "İstifadəçi adına görə süzgəclə", + filterRole: "Rola görə süzgəclə", + username: "İstifadəçi adı", + password: "Parol", + passwordUnchanged: "Cari parolu saxlamaq üçün boş buraxın", + nickname: "Ləqəb", + roles: "Rollar", + role: "Rol", + disabled: "Deaktiv", + createUser: "İstifadəçi yarat", + editUser: "İstifadəçini redaktə et", + resetUserPassword: "Parolu sıfırla", + passwordResetSucceeded: "{username} üçün parol sıfırlandı", + passwordResetFailed: "Parolu sıfırlamaq mümkün olmadı: {message}", + currentPasswordSaved: "Yadda saxlanılmış əlaqə giriş məlumatı yeniləndi və əlaqə yeni paroldan istifadə edəcək.", + currentSessionPasswordUpdated: "Yaddaşdakı əlaqə giriş məlumatı bu sessiya üçün yeniləndi və diskdə saxlanılmadı.", + currentPasswordNotSaved: "Bu əlaqə parolları saxlamır. Yenidən qoşularkən yeni parolu daxil edin.", + deleteUser: "İstifadəçini sil", + noUsers: "İstifadəçi tapılmadı", + noRoleBindings: "Rol təyinatı tapılmadı", + createUserTitle: "Nacos istifadəçisi yarat", + createUserDescription: "Bu Nacos xidməti üçün istifadəçi yaradın.", + editUserTitle: "r-nacos istifadəçisini redaktə et", + editUserDescription: "İstifadəçi profilini, rolları və ad məkanı səlahiyyətlərini yeniləyin.", + resetUserTitle: "Nacos istifadəçisinin parolunu sıfırla", + resetUserDescription: "Bu istifadəçi üçün yeni parol təyin edin.", + userCredentialsRequired: "İstifadəçi adı və parol tələb olunur.", + deleteUserTitle: "Nacos istifadəçisini sil", + deleteUserDescription: "{username} istifadəçisi silinsin? Bu əməliyyat geri qaytarıla bilməz.", + rnacosUserEnabledHint: "Deaktiv istifadəçilər r-nacos-a daxil ola bilməz.", + rnacosRole0: "İdarəçi", + rnacosRole0Hint: "Konsolun idarə edilməsinə tam giriş", + rnacosRole1: "Proqramçı", + rnacosRole1Hint: "Konfiqurasiya və xidmətlərin hazırlanmasına giriş", + rnacosRole2: "Ziyarətçi", + rnacosRole2Hint: "Konsola yalnız oxuma girişi", + namespacePrivileges: "Ad məkanı səlahiyyətləri", + namespaceWhitelist: "İcazə verilən ad məkanları siyahısı", + namespaceBlacklist: "Qadağan edilmiş ad məkanları siyahısı", + namespaceListPlaceholder: "Hər sətirdə bir ad məkanı və ya vergüllə ayrılmış ad məkanları", + namespaceSelectPlaceholder: "Ad məkanlarını seçin", + namespaceSearchPlaceholder: "Ad məkanlarını axtarın", + namespaceSelectedCount: "{count} seçilib", + namespaceRemoveSelection: "{namespace} ad məkanını çıxar", + noNamespacesAvailable: "Əlçatan ad məkanı yoxdur", + retryNamespaceList: "Yenidən cəhd et", + assignRole: "Rol təyin et", + assignRoleTitle: "Nacos rolu təyin et", + assignRoleDescription: "Bir Nacos istifadəçisinə rol təyin edin.", + roleBindingRequired: "İstifadəçi adı və rol tələb olunur.", + removeRole: "Rolu çıxar", + removeRoleTitle: "Nacos rolunu çıxar", + removeRoleDescription: "{username} istifadəçisindən {role} rolu çıxarılsın?", + protectedRole: "Daxili inzibatçı rolu DBX vasitəsilə çıxarıla bilməz.", + close: "Bağla", + accessSearchRoles: "Rolları axtar", + accessRoleCounts: "{members} üzv · {permissions} icazə", + accessNoRoles: "Rol tapılmadı", + accessUserSubtitle: "Rollar və qüvvədə olan ad məkanı girişi", + accessAssociatedRoles: "Təyin edilmiş rollar", + accessAssociatedRolesHint: "İcazələr hər təyin edilmiş roldan miras alınır.", + accessNoAssociatedRoles: "Təyin edilmiş rol yoxdur", + accessEffectivePermissions: "Qüvvədə olan icazələr", + accessEffectivePermissionsHint: "Hər icazəni verən rolla birlikdə birləşdirilmiş giriş.", + accessAction: "Əməliyyat", + accessSourceRole: "Mənbə rol", + accessNoEffectivePermissions: "Bu istifadəçinin qüvvədə olan icazəsi yoxdur", + accessGlobalAdministrator: "Qlobal inzibatçı", + accessNeedsRepair: "Düzəliş tələb olunur", + accessRoleSubtitle: "{members} təyin edilmiş üzv", + accessIncompleteRoleHint: "Bu rolun üzvləri və ya ad məkanı icazələri yoxdur. Yadda saxlamazdan əvvəl ad məkanı icazələri əlavə edin; üzvlər boş qala bilər.", + accessPermissionScope: "İcazənin əhatə dairəsi", + accessPermissionScopeHint: "Bu rolun idarə etdiyi ad məkanı qaydaları.", + accessAllResources: "Bütün resurslar", + accessAdminBypassHint: "ROLE_ADMIN adi ad məkanı icazə yoxlamalarından yan keçir.", + accessNoRolePermissions: "Ad məkanı icazəsi konfiqurasiya edilməyib", + accessMembers: "Üzvlər", + accessMembersHint: "Hazırda bu rolun təyin edildiyi istifadəçilər.", + accessNoMembers: "Təyin edilmiş üzv yoxdur", + accessOpenUser: "{username} istifadəçisinə bax", + accessOpenRole: "{role} roluna bax", + accessAdvancedPermissions: "Əlavə icazələr", + accessAdvancedPermissionsHint: "Xam qaydalar olduğu kimi saxlanılır və ad məkanının redaktəsi zamanı üzərinə yazılmır.", + accessRevokeRawPermission: "Xam icazəni geri al", + accessRevokeRawPermissionHint: "Bu, məhz göstərilən rol, resurs və əməliyyat üçlüyünü çıxarır.", + accessSelectItem: "Kataloqdan element seçin", + accessCreateRole: "Rol yarat", + accessDeleteRole: "Rolu sil", + accessReadOnly: "Yalnız oxuma", + accessWriteOnly: "Yalnız yazma", + accessReadWrite: "Oxuma və yazma", + accessDeletedNamespace: "silinmiş ad məkanı", + accessPasswordRequired: "Yeni parol daxil edin.", + accessCredentialsRequired: "İstifadəçi adı və parol tələb olunur.", + accessRoleMemberRequired: "Rol üçün ən azı bir üzv tələb olunur.", + accessRolePermissionRequired: "Rol üçün ən azı bir ad məkanı icazəsi tələb olunur.", + accessInlineUserRequired: "Hər yeni istifadəçi üçün istifadəçi adı və parol tələb olunur.", + accessNoAssignableRoles: "Tam rollar əlçatan deyil", + accessTypeUsername: "Bu yüksək riskli hesab dəyişikliyini təsdiqləmək üçün {value} yazın", + accessDeleteUserConfirmationLabel: "Silməni təsdiqləmək üçün tam istifadəçi adını daxil edin", + accessDeleteUserConfirmationHint: "Bu mətni olduğu kimi daxil edin (böyük və kiçik hərflərə həssasdır):", + accessDeleteUserConfirmationPlaceholder: "Tam istifadəçi adı", + accessMembersRequiredHint: "Mövcud istifadəçiləri seçin və ya burada istifadəçi yaradın. Ən azı biri tələb olunur.", + accessMembersOptionalHint: "Mövcud adi rol təyin edilmiş üzv olmadan icazələrini saxlaya bilər.", + accessInlineCreateUser: "Burada istifadəçi yarat", + accessAdminPermissionImmutable: "Qlobal inzibatçı icazəsi Nacos-a daxildir və ad məkanı qaydaları kimi redaktə edilə bilməz.", + accessPermissionRequiredHint: "Ad məkanlarını seçin, sonra hər biri üçün əməliyyat təyin edin.", + accessUnassignedNamespaces: "Təyin edilməmiş ad məkanları", + accessGrantedNamespaces: "İcazə verilmiş ad məkanları", + accessSearchNamespaces: "Ad məkanının adına və ya ID-sinə görə axtarın", + accessNoUnassignedNamespaces: "Əlavə ediləcək ad məkanı yoxdur", + accessNoGrantedNamespaces: "Giriş icazəsi vermək üçün ad məkanlarını seçin", + accessGrantNamespaces: "Seçilmiş ad məkanlarına icazə ver", + accessRevokeNamespaces: "Seçilmiş ad məkanlarını çıxar", + accessDeleteRoleHint: "{role} rolunun silinməsi bütün icazələri və üzv təyinatlarını çıxarır. Qismən uğursuzluqdan sonra uğurla silinənlər bərpa edilmir.", + accessTypeRole: "Rolun silinməsini təsdiqləmək üçün {value} yazın", + accessDeleteRoleConfirmationLabel: "Silməni təsdiqləmək üçün tam rol adını daxil edin", + accessDeleteRoleConfirmationHint: "Bu mətni olduğu kimi daxil edin (böyük və kiçik hərflərə həssasdır):", + accessDeleteRoleConfirmationPlaceholder: "Tam rol adı", + accessOperationResult: "Əməliyyatın nəticəsi", + accessReenterPassword: "Yenidən cəhd etmək üçün parolu təkrar daxil edin", + accessUndoCreated: "Yaradılmış elementləri geri al", + accessRetryFailed: "Uğursuz addımları yenidən sına", + accessUserDialog: { + create: "İstifadəçi yarat", + createHint: "Hesab yaradın və istəyə bağlı olaraq mövcud rolları təyin edin.", + roles: "İstifadəçi rollarını redaktə et", + rolesHint: "{username} istifadəçisinə təyin edilmiş rolları yeniləyin.", + password: "Parolu sıfırla", + passwordHint: "{username} üçün yeni parol təyin edin.", + delete: "İstifadəçini sil", + deleteHint: "{username} istifadəçisini silməzdən əvvəl rolların bütövlüyünü yoxlayın.", + }, + accessRoleDialog: { + create: "Rol yarat", + createHint: "Üzvləri və ad məkanı icazələrini birlikdə konfiqurasiya edin.", + edit: "Rolu redaktə et", + editHint: "Dəyişikliklər üzv və icazə əməliyyatlarının uzlaşdırılmış toplusu kimi tətbiq edilir.", + delete: "Rolu sil", + deleteHint: "Bu əməliyyat qismən uğurlu ola bilər və avtomatik geri qaytarıla bilməz.", + }, + accessOperationStatus: { + running: "Əməliyyat hələ davam edir.", + partial: "Bəzi addımlar uğurlu oldu, bəziləri isə diqqət tələb edir.", + succeeded: "Bütün addımlar uğurla tamamlandı.", + failed: "Əməliyyat tamamlanmadı.", + undoing: "Yaradılmış elementlər çıxarılır.", + undone: "Yaradılmış elementlər çıxarıldı.", + }, + accessStep: { + createUser: "İstifadəçi yarat", + deleteUser: "İstifadəçini sil", + assignRole: "Rol təyin et", + removeRole: "Rol təyinatını çıxar", + grantPermission: "İcazə ver", + revokePermission: "İcazəni geri al", + }, + rnacosAccessControlAuthDescription: "İstifadəçiləri və rolları idarə etmək üçün r-nacos konsolunun təsdiqləmə kodunu daxil edin.", + raw: "Xam", + namespace: "Ad məkanı", + createNamespace: "Ad məkanı yarat", + editNamespace: "Ad məkanını redaktə et", + deleteNamespace: "Ad məkanını sil", + deleteNamespaceDescription: "{name} ({id}) ad məkanı silinsin? Onun konfiqurasiyaları və xidmətləri əlçatmaz ola bilər. Bu əməliyyat geri qaytarıla bilməz.", + creatingNamespace: "Yaradılır...", + updatingNamespace: "Yenilənir...", + deletingNamespace: "Silinir...", + namespaceCreated: '"{name}" ad fəzası yaradıldı', + namespaceUpdated: '"{name}" ad fəzası yeniləndi', + namespaceDeleted: '"{name}" ad fəzası silindi', + namespaceId: "Ad məkanı ID-si", + namespaceIdPlaceholder: "DBX-in UUID yaratması üçün boş buraxın", + namespaceName: "Ad məkanının adı", + namespaceNamePlaceholder: "Ad məkanının adını daxil edin", + namespaceDesc: "Təsvir", + namespaceDescPlaceholder: "Standart olaraq ad məkanının adı istifadə olunur", + dataId: "Verilənlərin ID-si", + group: "Qrup", + format: "Format", + content: "Məzmun", + tags: "Etiketlər", + application: "Tətbiq", + description: "Təsvir", + advanced: "Əlavə", + collapse: "Yığ", + configIdentity: "Konfiqurasiya identifikatoru", + newConfigDraft: "Yeni konfiqurasiya", + draft: "Qaralama", + unsaved: "Yadda saxlanılmayıb", + published: "Dərc edilib", + readOnlyState: "Yalnız oxuma", + load: "Yüklə", + save: "Yadda saxla", + saveAs: "Fərqli saxla", + saving: "Yadda saxlanılır...", + saved: "Konfiqurasiya yadda saxlanıldı", + createdAndLoaded: "{dataId} yaradıldı və yükləndi", + savedAndLoaded: "{dataId} yadda saxlanıldı və yeniləndi", + deleted: "Konfiqurasiya silindi", + delete: "Sil", + copy: "Kopyala", + copied: "Kopyalandı", + copyVerifyFailed: "Yazıldıqdan sonra mübadilə buferinin yoxlanılması uğursuz oldu", + export: "İxrac et", + exported: "İxrac edildi", + exportedTo: "{path} yoluna ixrac edildi", + exportFailed: "İxrac uğursuz oldu: {message}", + contentSearch: "Tam mətn üzrə axtarış", + contentSearchTitle: "Nacos konfiqurasiyalarında tam mətn üzrə axtarış", + contentSearchDescription: "Hazırda dərc edilmiş konfiqurasiya məzmununda böyük və kiçik hərfləri fərqləndirən hərfi axtarış aparın. Əvvəlki versiyalarda axtarış aparılmır.", + contentSearchPlaceholder: "Verilənlər bazasının URL-i, hesab və ya hər hansı konfiqurasiya parçası", + search: "Axtarış", + cancel: "Ləğv et", + currentNamespace: "Cari adlar fəzası", + allNamespaces: "Bu əlaqədəki bütün adlar fəzaları", + allNamespacesSearchWarning: "Bütün adlar fəzalarında axtarış çoxlu konfiqurasiyanın sadalanmasına səbəb ola bilər. Bu, Nacos 2.x və r-nacos-da yavaş ola bilər və serverin yükünü artırır.", + scannedCount: "{count} yoxlanıldı", + matchCount: "{count} uyğunluq", + incompleteResult: "Nəticələr natamam ola bilər", + lineNumber: "Sətir {line}", + noContentMatches: "Heç bir konfiqurasiyada bu məzmun yoxdur", + contentSearchEmptyHint: "Axtarış üçün açar söz daxil edin. Açar sözlər, məzmun və mətn parçaları diskdə və ya jurnallarda saxlanılmır.", + searchResults: "Axtarış nəticələri", + searchResultsRetainedHint: "Nəticəni məzmun sahəsində açın. Bu nəticələr toplusuna yuxarı alətlər panelindəki Axtarış nəticələri bölməsindən yenidən baxmaq olar.", + openedSearchResult: "Açıldı", + exportSearchResults: "Nəticələri ixrac et", + clearSearchResults: "Axtarış nəticələrini təmizlə", + searchResultsExported: "Axtarış nəticələri ixrac edildi", + searchResultsExportedTo: "Axtarış nəticələri {path} yoluna ixrac edildi", + batchExport: "Toplu ixrac", + batchImport: "Toplu idxal", + copyToNamespace: "Konfiqurasiyaların sinxronlaşdırılması", + batchDelete: "Toplu silmə", + batchDeleteTitle: "Seçilmiş Nacos konfiqurasiyalarını sil", + batchDeleteConfirm: "Seçilmiş {count} konfiqurasiya silinsin? Bu əməliyyatı geri qaytarmaq mümkün deyil.", + batchDeleteSuccess: "{count} konfiqurasiya silindi", + batchDeletePartial: "{deleted} konfiqurasiya silindi; {failed} uğursuz oldu.", + batchDeleteInterrupted: "{deleted} konfiqurasiya silindikdən sonra toplu silmə dayandırıldı.", + configPageSize: "Hər səhifədə", + selectedCount: "{count} seçilib", + retryConnectionInfo: "Əlaqə məlumatlarının yoxlanılmasına yenidən cəhd et", + resizeColumn: "Sütunun ölçüsünü dəyişmək üçün sürükləyin", + visibleColumns: "Görünən sütunlar", + configListGroup: "Qrup", + configListApplication: "Tətbiq", + configListFormat: "Format", + selectCurrentPage: "Cari səhifəni seç", + selectConfigForBatch: "{dataId} konfiqurasiyasını seç", + batchExportTitle: "Nacos konfiqurasiyalarını toplu ixrac et", + batchExportDescription: "Nacos konsolu ilə uyğun ZIP yaradın. O, şifrəsi açılmış, açıq mətn şəklində konfiqurasiya ehtiva edir və təhlükəsiz saxlanılmalıdır.", + batchImportTitle: "Nacos konfiqurasiyalarını toplu idxal et", + batchImportDescription: "Hər elementi cari adlar fəzasında dərc etməzdən əvvəl arxivi təhlükəsiz şəkildə təhlil edin və ziddiyyətlərə önbaxış edin.", + batchCopyTitle: "Konfiqurasiyaları başqa adlar fəzasına sinxronlaşdır", + batchCopyDescription: "Sinxronlaşdırma birtərəfli kopyalama ilə aparılır və mənbə konfiqurasiyalarını heç vaxt silmir və ya dəyişmir. Hədəfdəki ziddiyyətlərə seçilmiş qayda tətbiq olunur.", + exportScope: "Konfiqurasiya əhatəsi", + selectedConfigs: "Seçilmiş konfiqurasiyalar ({count})", + filteredConfigs: "Cari süzgəcə uyğun gələnlərin hamısı (təxminən {count})", + namespaceAllConfigs: "Bu adlar fəzasındakı bütün konfiqurasiyalar", + importArchive: "Nacos ZIP arxivi", + noArchiveSelected: "ZIP seçilməyib", + chooseZip: "ZIP seç", + importSensitiveWarning: "Uyğun ZIP açıq mətn şəklində verilənlər bazası parolları, açarlar və digər məxfi məlumatlar ehtiva edə bilər. Yalnız etibarlı arxivləri idxal edin.", + targetConnection: "Hədəf əlaqə", + chooseTargetConnection: "Hədəf Nacos əlaqəsini seç", + noTargetConnections: "Yazıla bilən Nacos əlaqəsi yoxdur. Birini əlavə edin və ya hədəf əlaqənin yalnız oxuma parametrini söndürün.", + targetNamespace: "Hədəf adlar fəzası", + chooseTargetNamespace: "Başqa adlar fəzasını seç", + targetGroup: "Hədəf qrup (istəyə bağlı)", + targetGroupPlaceholder: "Mənbə qrupla eyni", + targetDataIds: "Hədəf məlumat ID-ləri (istəyə bağlı)", + targetDataIdsHint: "Seçilmiş konfiqurasiyaların adları ayrı-ayrılıqda dəyişdirilə bilər. Mənbədəki məlumat ID-sini saxlamaq üçün sahəni boş buraxın.", + copyKeepsSource: "Sinxronlaşdırma birtərəfli kopyalama ilə aparılır. Mənbə adlar fəzasındakı konfiqurasiyalar dəyişməz qalır.", + conflictPolicy: "Ziddiyyət qaydası", + policyABORT: "Ziddiyyət olduqda dayandır", + policyABORTHint: "Önbaxış ziddiyyət aşkar etdikdə heç nə yazma", + policySKIP: "Ziddiyyətləri ötür", + policySKIPHint: "Yalnız hədəfdə olmayan konfiqurasiyaları yarat", + policyOVERWRITE: "Hədəfin üzərinə yaz", + policyOVERWRITEHint: "Hədəfdə eyni açara malik konfiqurasiyaları mənbə ilə əvəz et", + overwriteWarning: "Üzərinə yazma hədəfdə dərc edilmiş konfiqurasiyaları dəyişir və əlavə təsdiq tələb edir.", + overwriteConfirm: "Hədəf adlar fəzasında ziddiyyətli bütün konfiqurasiyaların üzərinə yazılsın? Bunu avtomatik geri qaytarmaq mümkün deyil.", + preview: "Önbaxış", + apply: "Tətbiq et", + exportZip: "ZIP-i ixrac et", + previewTotal: "Cəmi {count}", + previewCreated: "{count} yeni", + previewConflicts: "{count} ziddiyyət", + previewInvalid: "{count} etibarsız", + previewExpired: "Önbaxış köhnəlib. Önbaxışı yenidən başladın.", + batchFinished: "Sinxronlaşdırma tamamlandı: {written} yazıldı", + batchAborted: "Sinxronlaşdırma aparılmadı: ziddiyyət bütün yazma əməliyyatlarına mane oldu", + batchPartial: "Toplu əməliyyat qismən tamamlandı; uğursuz elementləri nəzərdən keçirin", + batchCancelled: "Ləğv edildi", + batchCancelledSummary: "Sinxronlaşdırma ləğv edildi: {processed}/{total} emal edildi", + batchFailedSummary: "Sinxronlaşdırma qismən tamamlandı: {written} yazıldı, {failed} uğursuz oldu", + batchPartialSummary: "Sinxronlaşdırma tamamlanmayıb: {processed}/{total} emal edildi", + batchFinishedWithSkipped: "Sinxronlaşdırma tamamlandı: {written} yazıldı, {skipped} ötürüldü", + batchStatusCreate: "Yaradılacaq", + batchStatusConflict: "Ziddiyyət", + batchStatusInvalid: "Etibarsız", + batchStatusCreated: "Yaradıldı", + batchStatusOverwritten: "Üzərinə yazıldı", + batchStatusSkipped: "Ötürüldü", + batchStatusFailed: "Uğursuz oldu", + batchStatusAborted: "İşlədilmədi", + batchStatusExported: "İxrac edildi", + batchStatusUnknown: "{status}", + reportWritten: "{count} yazıldı", + reportCreated: "{count} yaradıldı", + reportOverwritten: "{count} konfiqurasiyanın üzərinə yazıldı", + reportSkipped: "{count} ötürüldü", + reportFailed: "{count} uğursuz oldu", + reportItems: "Konfiqurasiya təfərrüatları ({count})", + history: "Tarixçə", + configHistory: "Konfiqurasiya tarixçəsi", + historyUnavailable: "Bu əlaqə üçün konfiqurasiya tarixçəsi əlçatan deyil. Onu aktivləşdirmək üçün r-nacos konsolunun URL-ini təyin edin və yenidən qoşulun.", + historyDisabled: "Bu əlaqə üçün konfiqurasiya tarixçəsi deaktivdir.", + historyConsoleUrlMissing: "Konfiqurasiya tarixçəsi üçün r-nacos konsolunun ünvanı lazımdır.", + historyConsoleCredentialsMissing: "Konfiqurasiya tarixçəsi üçün r-nacos konsolunun giriş məlumatları lazımdır.", + rnacosConsoleAuthTitle: "r-nacos konsolunun doğrulanması", + rnacosConsoleAuthDescription: "Konfiqurasiya növlərini, təsvirlərini və tarixçəsini oxumaq üçün r-nacos konsolunun doğrulama kodunu daxil edin.", + rnacosCaptchaLabel: "Doğrulama kodu", + rnacosCaptchaPlaceholder: "Yuxarıda göstərilən kodu daxil edin", + rnacosCaptchaRequired: "Doğrulama kodu tələb olunur.", + rnacosCaptchaUnavailable: "r-nacos doğrulama şəkli qaytarmadı.", + rnacosRefreshCaptcha: "Kodu yenilə", + rnacosConsoleAuthSubmit: "Doğrula və davam et", + historyDetail: "Tarixçə təfərrüatları", + historyCompareTitle: "Əvvəlki versiyaların müqayisəsi", + currentPublishedContent: "Hazırda dərc edilmiş məzmun:", + historyVersionContent: "Əvvəlki versiyanın məzmunu:", + updatedAt: "Yenilənmə vaxtı", + operationType: "Əməliyyat", + operator: "Operator", + view: "Bax", + compare: "Müqayisə et", + rollback: "Geri qaytar", + loadingHistory: "Tarixçə yüklənir...", + noHistory: "Əvvəlki versiyalar yoxdur", + noHistoryHint: "Bu konfiqurasiya indicə dərc edilibsə, yeniləyin. Bəzi Nacos versiyaları tarixçə API-lərini təqdim etməyə bilər.", + historyCreate: "Yarat", + historyUpdate: "Yenilə", + historyDelete: "Sil", + historyRollback: "Geri qaytar", + confirmRollbackTitle: "Nacos konfiqurasiyasını geri qaytar", + confirmRollbackMessage: "Bu, cari konfiqurasiyanı seçilmiş əvvəlki versiyaya qaytaracaq.", + rollbackSuccess: "Konfiqurasiya geri qaytarıldı", + publish: "Dərc et", + validate: "Yoxla", + validationPassed: "Konfiqurasiyanın sintaksisi düzgündür", + validationErrorTitle: "Konfiqurasiya sintaksisi xətası", + validationErrorDescription: "Bu konfiqurasiyanı dərc etməzdən əvvəl sintaksis xətalarını düzəldin.", + validationLine: "Sətir: {line}", + validationColumn: "Sütun: {column}", + validationLocate: "Xətanın yerini tap", + dataIdRequired: "Məlumat ID-si tələb olunur", + allGroups: "Bütün qruplar", + noConfigs: "Konfiqurasiya yoxdur", + selectConfig: "Konfiqurasiya seçin və ya yaradın", + noServices: "Xidmət yoxdur", + selectService: "Xidmət seçin", + service: "Xidmət", + instances: "İnstansiyalar", + instanceCount: "{count} instansiya", + refresh: "Yenilə", + address: "Ünvan", + cluster: "Klaster", + weight: "Çəki", + state: "Vəziyyət", + actions: "Əməliyyatlar", + query: "Sorğu", + body: "Gövdə", + response: "Cavab", + template: "Şablon", + configDiffTitle: "Konfiqurasiya məzmununun müqayisəsi", + inlineCompare: "Sətirdaxili müqayisə", + diffStats: "+{added} / -{removed} / ~{modified} sətir", + previousDifference: "Əvvəlki fərq", + nextDifference: "Növbəti fərq", + currentVersionContent: "Cari rəsmi versiya:", + publishVersionContent: "Bu buraxılışın məzmunu:", + confirmSaveTitle: "Nacos konfiqurasiyasındakı dəyişiklikləri nəzərdən keçir", + confirmDeleteTitle: "Nacos konfiqurasiyasını sil", + confirmDeleteMessage: "Bu, seçilmiş konfiqurasiyanı Nacos-dan silir.", + confirmInstanceTitle: "Nacos instansiyasını yenilə", + confirmInstanceMessage: "Hədəf xidmət instansiyasının vəziyyətini təsdiqləyin.", + confirmRawTitle: "Dəyişiklik edən birbaşa API sorğusu göndər", + confirmRawMessage: "Bu birbaşa API sorğusu Nacos-un vəziyyətini dəyişə bilər.", + rawTemplate: { + serverState: "Serverin vəziyyəti", + namespaceList: "Adlar fəzalarının siyahısı", + configDetail: "Konfiqurasiya təfərrüatları", + serviceList: "Xidmət siyahısı", + instanceList: "İnstansiya siyahısı", + }, + healthy: "Sağlam", + unhealthy: "Qeyri-sağlam", + enabled: "Aktiv", + offline: "Oflayn", + ephemeral: "Müvəqqəti", + persistent: "Daimi", + enable: "Aktivləşdir", + disable: "Deaktiv et", + markHealthy: "Sağlam kimi işarələ", + markUnhealthy: "Qeyri-sağlam kimi işarələ", + send: "Göndər", + total: "Cəmi {count}", + prev: "Əvvəlki", + next: "Növbəti", + test: "Yoxla", + readOnly: "Yalnız oxuma", + nacosConnectionPlan: "Əlaqə planı", + nacosConnectionPlanDescription: "Xidmətin reallaşdırılmasını və API versiyasını seçin.", + nacosApiPlane: "Nacos 3 API", + nacosApiPlaneAdmin: "İnzibatçı API-si", + nacosApiPlaneAdminHint: "Tövsiyə olunur · tam idarəetmə", + nacosApiPlaneConsole: "Konsol API-si", + nacosApiPlaneConsoleHint: "Məhdud · yalnız konsola girişlə işləyir", + nacosServiceAddress: "Xidmət ünvanı", + nacosServiceAddressHint: "Xidmət ünvanını daxil edin. Standart port 8848-dir, məsələn, http://host:8848/nacos.", + nacosConsoleServiceAddressHint: "Konsol API-sinin ünvanını daxil edin. Standart port 8080-dir, məsələn, http://host:8080.", + nacosManagedNamespaces: "İdarə olunan adlar fəzalarının ID-ləri", + nacosManagedNamespacesNameOrId: "İdarə olunan adlar fəzalarının adları və ya ID-ləri", + nacosManagedNamespacesPlaceholder: "Məsələn: public, team-a", + nacosManagedNamespacesIdPlaceholder: "Məsələn: public, f8b8c4e2-8195-4041-adb2-683a8259384b", + nacosManagedNamespacesHint: "Bu adi istifadəçinin giriş əldə edə bildiyi adlar fəzalarının ID-lərini vergül və ya yeni sətirlə ayıraraq daxil edin. Əlaqə yoxlaması hər ID üçün konfiqurasiya və xidməti oxuma icazəsini yoxlayır.", + nacosOrdinaryAccount: "Adi istifadəçi", + nacosOrdinaryAccountHint: "Yuxarıdakı hesab adi istifadəçidirsə, bu seçimi aktivləşdirin və onun icazəsi olan adlar fəzalarını seçin; əks halda əlaqə düzgün işləməyəcək.", + nacosManagedNamespacesSeparator: "Vergül və ya yeni sətirlə ayrılmış", + nacosOrdinaryNamespacesRequired: "Bu adi istifadəçinin idarə etməsinə icazə verilən ən azı bir adlar fəzasının ID-sini daxil edin.", + nacosManagedNamespacesRequired: "Bu adi Nacos istifadəçisi adlar fəzalarını və ya səlahiyyət məlumatlarını siyahılaya bilmir. Onun idarə etməsinə icazə verilən ən azı bir adlar fəzasının ID-sini daxil edin və yenidən cəhd edin.", + nacosManagedNamespaceAccessDenied: "Bu adlar fəzaları konfiqurasiya və ya xidməti oxuma icazəsi yoxlamasından keçmədi: {detail}", + nacosNamespaceAccessScope: "Adlar fəzalarına giriş əhatəsi", + nacosNamespaceAccessScopeHint: "Əvvəlcə əlçatan adlar fəzalarını aşkar edin. Siyahılama mümkün deyilsə, yoxlanılmış adlar fəzası ID-lərini əl ilə daxil edin.", + nacosNamespaceAccessAutomatic: "Avtomatik aşkar et", + nacosNamespaceAccessManual: "Əl ilə daxil et", + nacosDetectAccessibleNamespaces: "Əlçatan adlar fəzalarını aşkar et və seç", + nacosDetectAccessibleNamespacesHint: "DBX {name} üçün adlar fəzalarını təklif etməzdən əvvəl konfiqurasiya və xidməti oxuma icazəsini yoxlayır.", + nacosV3AdminNamespaceScopeHint: "Nacos 3 inzibatçı API-ləri adətən inzibatçı hesabı tələb edir. Məhdud hesab və onun adlar fəzalarına giriş əhatəsi üçün konsol API-sindən istifadə edin.", + nacosV3AdminManagedNamespacesHint: "Bu, Nacos 3 inzibatçı API-sindən istifadə edir (adətən 8848 portu). Adi istifadəçi göstərilən adları deyil, adlar fəzalarının ID-lərini daxil etməlidir. ID-ni Nacos konsolundakı adlar fəzası təfərrüatlarından və ya rol icazəsi resurslarından kopyalayın.", + nacosV3ConsoleManagedNamespacesHint: "Bu, Nacos 3 konsol API-sindən istifadə edir (adətən 8080 portu). Adlar fəzasının adını və ya ID-sini daxil edin; DBX kataloqu oxuya bildikdə adı onun həqiqi ID-sinə çevirir.", + rnacosNamespaceAccessScopeHint: "r-nacos konsol profili əlçatan olduqda adlar fəzalarına girişi cari istifadəçinin adlar fəzası səlahiyyətləri əsasında müəyyən edir.", + nacosAuth: "Kimlik doğrulaması", + nacosAuthHint: "Bu giriş məlumatları əlaqə yoxlamaları və gündəlik idarəetmə üçün istifadə olunur.", + nacosUsernamePassword: "İstifadəçi adı / parol", + nacosAdvancedHint: "Əlavə əlaqə seçimləri Qabaqcıl bölməsində mövcuddur.", + nacosAdvancedHintDescription: "Prometheus metrikalarını, səhifə ölçüsünü, TLS yoxlamasını və r-nacos genişləndirmələrini orada tənzimləyin.", + nacosGoAdvanced: "Qabaqcıl bölməsinə keç", + nacosV3ConsolePortWarning: "8080 standart Nacos 3 veb konsol portudur. Xidmətləri idarə etmək üçün 8848 portundakı server / inzibatçı API-si ünvanından istifadə edin, məsələn, http://127.0.0.1:8848/nacos.", + nacosV3AdminPortWarning: "8848 adətən inzibatçı API-si portudur. Konsol API-si rejimi üçün konsol ünvanından istifadə edin, adətən http://127.0.0.1:8080.", + nacosAdvancedTitle: "Nacos üçün qabaqcıl əlaqə seçimləri", + nacosAdvancedDescription: "Bu parametrlərin standart dəyərləri təhlükəsizdir və adətən yalnız xüsusi yerləşdirmələr, metrikalar və ya r-nacos genişləndirmələri üçün tənzimlənməlidir.", + nacosContextPathHint: "Seçilmiş profilin standart dəyərindən istifadə etmək üçün boş buraxın. Serverin kökündən birbaşa istifadə etmək üçün / daxil edin və ya /nacos kimi əks proksi prefiksi göstərin.", + nacosPageSizeHint: "Konfiqurasiya və xidmət siyahıları üçün istifadə olunur; hər səhifədə 1–500 element.", + nacosMetricsHint: "Metrikaları xidmət ünvanından avtomatik sorğula; metrikaların son nöqtəsi fərqli olduqda xüsusi URL seçin.", + nacosRnacosExtension: "r-nacos konsolunun imkanları", + nacosRnacosExtensionHint: "Konsolun ünvanı və giriş məlumatları istifadəçilərin idarə edilməsini, konfiqurasiya təfərrüatlarını və deaktiv instansiyaların idarə edilməsini aktivləşdirir. Konfiqurasiya tarixçəsi aşağıda ayrıca idarə olunur.", + nacosEnabled: "Aktiv", + nacosRnacosConsoleUrlHint: "Adətən http://host:10848. r-nacos istifadəçilərinin idarə edilməsi və digər konsol imkanları üçün tələb olunur.", + nacosRnacosDisabledHint: "Konfiqurasiya tarixçəsi deaktivdir. Konsol ünvanı və giriş məlumatları təyin edildikdə istifadəçilərin idarə edilməsi əlçatan qalır.", + nacosTlsHint: "Yalnız etibarlı, özü tərəfindən imzalanmış HTTPS sertifikatı üçün aktivləşdirin.", + nacosVisibleNamespacesTitle: "Görünən adlar fəzalarını seç", + nacosVisibleNamespacesDetailLabel: "Görünən adlar fəzaları", + nacosVisibleNamespacesDetailActionLabel: '"{connection}" üçün görünən ad fəzalarını tənzimlə', + nacosVisibleNamespacesDescription: "{name} üçün yan paneldə göstəriləcək adlar fəzalarını seçin.", + nacosSearchNamespaces: "Adlar fəzalarını axtar...", + nacosSelectedNamespaces: "{selected}/{total} seçilib", + nacosSelectAll: "Hamısını seç", + nacosClearSelection: "Təmizlə", + nacosShowAll: "Hamısını göstər", + nacosNamespaceSelectionRequired: "Ən azı bir adlar fəzası seçin və ya süzgəci təmizləmək üçün “Hamısını göstər” seçimindən istifadə edin.", + nacosLoadNamespacesFailed: "Adlar fəzalarını yükləmək mümkün olmadı: {message}", + capabilityReadOnly: "Bu əlaqə yalnız oxuma üçündür.", + capabilityReadOnlyWrite: "Bu reallaşdırma hazırda yalnız oxuma əməliyyatlarını təqdim edir; yazma uyğunluğu yoxlanılmayıb.", + capabilityVersionUnsupported: "Bu Nacos versiyası əməliyyatı dəstəkləmir.", + capabilityEndpointUnavailable: "Bu əlaqə idarəetmə son nöqtəsini təmin etmir.", + capabilityNotVerified: "Bu əməliyyat cari reallaşdırma üçün yoxlanılmayıb.", + capabilityHeaderReadOnly: "Bu əlaqə yalnız oxuma üçündür; xidmət və instansiyalar üzrə yazma əməliyyatları deaktivdir.", + protectionTriggeredDescription: "Sağlam instansiyaların nisbəti təyin edilmiş həddən aşağı olduğu üçün qoruma rejimi işə düşüb. Nacos boş siyahı əvəzinə qeyri-sağlam instansiyaları qaytarmağa davam edə bilər.", + instanceEphemeral: "Müvəqqəti instansiya", + instancePersistent: "Daimi instansiya", + instanceUnknown: "Naməlum instansiya növü", + instanceConfirmDetails: "Adlar fəzası: {namespace}\nXidmət: {service}\nÜnvan: {ip}:{port}\nKlaster: {cluster}\nNöv: {type}", + serviceUpdateUnconfirmed: "Xidmətin yenilənməsi göndərildi, lakin Nacos hədəf vəziyyəti qaytarmayıb. Təsdiqləmək üçün xidmət təfərrüatlarını yeniləyin.", + invalidWeight: "Çəki 0-dan böyük və ya ona bərabər sonlu ədəd olmalıdır.", + invalidWeightInput: "0-dan böyük və ya ona bərabər sonlu çəki daxil edin.", + metadataLabel: "Metaməlumatlar", + viewMetadataTable: "Cədvələ bax", + instanceMetadataTitle: "İnstansiyanın metaməlumatları", + metadataKey: "Açar", + metadataValue: "Dəyər", + selectorLabel: "Seçici", + instanceUpdateUnconfirmed: "İnstansiyanın yenilənməsi göndərildi, lakin Nacos yeni vəziyyəti qaytarmayıb. Serverin vəziyyətini yoxlamaq üçün yeniləyin.", + instanceRegisterUnconfirmed: "İnstansiyanın qeydiyyatı göndərildi, lakin Nacos instansiyanı qaytarmayıb. Təsdiqləmək üçün yeniləyin.", + instanceDeregisterUnconfirmed: "İnstansiyanın qeydiyyatdan çıxarılması göndərildi, lakin Nacos hələ də instansiyanı qaytarır. Təsdiqləmək üçün yeniləyin.", + serviceValidation: "Xidmət adı və qrup tələb olunur; qoruma həddi 0 ilə 1 arasında olmalıdır.", + serviceHasInstances: "Xidmətdə hələ də instansiyalar var və onu silmək mümkün deyil.", + serviceDeleteUnconfirmed: "Xidmətin silinməsi göndərildi, lakin Nacos hələ də xidməti qaytarır. Yenidən yükləyin və təsdiqləyin.", + instanceValidation: "Etibarlı IP, port və mənfi olmayan çəki daxil edin.", + protectionTriggered: "Qoruma rejimi işə düşdü", + loadedInstances: "{count} yüklənmiş instansiya", + filterInstanceCluster: "İnstansiya klasterini süzgəcdən keçir", + filter: "Süzgəc", + clear: "Təmizlə", + serviceSettings: "Xidmət parametrləri", + serviceDetails: "Xidmət təfərrüatları", + expand: "Genişləndir", + instanceStat: "İnstansiyalar", + healthyInstances: "Sağlam instansiyalar", + clusterCount: "Klasterlər", + protectThreshold: "Qoruma həddi", + itemCount: "{count} element", + temporaryService: "Müvəqqəti xidmət", + loadingServiceDetail: "Xidmət təfərrüatları yüklənir…", + refreshDetail: "Təfərrüatları yenilə", + noMetadata: "Metaməlumat yoxdur", + noInstances: "İnstansiya yoxdur", + createNacosService: "Nacos xidməti yarat", + editNacosService: "Nacos xidmətini redaktə et", + manageServiceMetadata: "Xidmətin metaməlumatlarını və qoruma həddini idarə edin.", + serviceName: "Xidmət adı", + groupName: "Qrup", + thresholdExample: "Məsələn, 0.5", + jsonObject: "JSON obyekti", + optionalJsonObject: "JSON obyekti, istəyə bağlı", + jsonObjectValidation: " JSON obyekti olmalıdır.", + registerPersistentInstance: "Daimi instansiyanı qeydiyyata al", + persistentInstanceHint: "DBX müvəqqəti instansiyaları qeydiyyata almır, çünki onların davamlı aktivlik siqnallarını təmin edə bilmir.", + ipAddress: "IP ünvanı", + port: "Port", + instanceEditorTitle: "İnstansiyanı redaktə et", + deleteNacosService: "Nacos xidmətini sil", + confirmEmptyServiceDelete: "Bu boş xidmət silinsin? Bu əməliyyatı geri qaytarmaq mümkün deyil.", + deregisterNacosInstance: "Nacos instansiyasını qeydiyyatdan çıxar", + confirmInstanceDeregister: "Bu instansiya cari xidmətdən qeydiyyatdan çıxarılsın?", + edit: "Redaktə et", + restore: "Bərpa et", + registerInstance: "İnstansiyanı qeydiyyata al", + deregister: "Qeydiyyatdan çıxar", + }, + doltVersionControl: { + title: "Dolt versiya nəzarəti", + open: "Versiya nəzarəti", + branches: "Budaqlar", + branchTreeView: "Ağac görünüşü", + branchFlatView: "Düz görünüş", + expandBranch: "Budaq qrupunu genişləndir", + collapseBranch: "Budaq qrupunu yığ", + tags: "Etiketlər", + filterRefs: "Budaqları və etiketləri süzgəcdən keçir", + noBranches: "Budaq yoxdur", + noTags: "Etiket yoxdur", + unknownBranch: "Naməlum budaq", + switchDatabase: "Verilənlər bazasını dəyiş", + switchBranch: "Budağı dəyiş", + workingTree: "İşçi ağac", + stagedChanges: "Qeydə hazırlanıb: {count}", + unstagedChanges: "Qeydə hazırlanmayıb: {count}", + uncommitted: "Qeydə alınmayıb", + stageAllChanges: "Bütün dəyişiklikləri qeydə hazırla", + commitWorkingTree: "İşçi ağacı qeydə al", + commitWorkingTreeDescription: "İşçi ağacdakı dəyişiklikləri hazırlamaq və qeydə almaq üçün qeyd mesajı daxil edin.", + commitMessage: "Qeyd mesajı", + commitMessagePlaceholder: "Məsələn: Sifarişin vəziyyətini düzəlt", + commitMessageRequired: "Qeyd mesajı daxil edin.", + changesStaged: "İşçi ağacdakı dəyişikliklər qeydə hazırlandı", + workingTreeCommitted: "İşçi ağacdakı dəyişikliklər qeydə alındı", + comparison: "Cari müqayisə", + swapComparison: "Müqayisə tərəflərinin yerini dəyiş", + noRevision: "Reviziya yoxdur", + compareCurrent: "Cari budaqla müqayisə et", + checkoutBranch: "Budağa keç", + branchCheckedOut: "{name} budağına keçildi", + graph: "Qraf", + commit: "Qeydə al", + author: "Müəllif", + date: "Tarix", + loadingGraph: "Dəyişiklik qeydlərinin qrafı yüklənir...", + noCommits: "Dəyişiklik qeydi tapılmadı", + noMessage: "Qeyd mesajı yoxdur", + changedTables: "Dəyişdirilmiş cədvəllər", + loadingDiff: "Reviziya fərqləri yüklənir...", + noChanges: "Bu reviziyalar arasında cədvəl dəyişikliyi tapılmadı.", + rowDiff: "Sətir fərqləri", + rows: "{count} sətir", + loadingRows: "Sətir fərqləri yüklənir...", + selectTable: "Dəyişdirilmiş cədvəli seçin", + noRowChanges: "Sətir dəyişikliyi qaytarılmadı. Dəyişiklik yalnız sxemə aid ola bilər.", + createBranch: "Budaq yarat", + createTag: "Etiket yarat", + mergeBranch: "Budağı birləşdir", + deleteBranch: "Budağı sil", + deleteTag: "Etiketi sil", + createBranchDescription: "Seçilmiş reviziyadan və ya cari budaqdan budaq yaradın.", + createTagDescription: "Seçilmiş reviziyadan və ya cari budaqdan etiket yaradın.", + mergeBranchDescription: "{name} budağını aktiv budaqla birləşdirin.", + deleteBranchDescription: "{name} budağını silin. Bu əməliyyatı geri qaytarmaq mümkün deyil.", + deleteTagDescription: "{name} etiketini silin. Bu əməliyyatı geri qaytarmaq mümkün deyil.", + branchName: "Budaq adı", + branchNamePlaceholder: "feature/my-branch", + tagName: "Etiket adı", + tagNamePlaceholder: "v1.0.0", + branchSource: "Mənbə reviziya: {revision}", + branchNameRequired: "Budaq adı daxil edin.", + tagNameRequired: "Etiket adı daxil edin.", + branchCreated: "{name} budağı yaradıldı", + branchMerged: "{name} budağı birləşdirildi", + branchDeleted: "{name} budağı silindi", + tagCreated: "{name} etiketi yaradıldı", + tagDeleted: "{name} etiketi silindi", + copyHash: "Dəyişiklik qeydinin heşini kopyala", + revertCommit: "Bu qeydin dəyişikliklərini geri qaytar", + hardResetToCommit: "Cari budağı bu dəyişiklik qeydinə tam sıfırla", + revertCommitTitle: "Qeydin dəyişikliklərini geri qaytar", + hardResetTitle: "Cari budağı tam sıfırla", + revertCommitDescription: "{hash} dəyişiklik qeydinin gətirdiyi dəyişiklikləri geri qaytaran yeni qeyd yaradın.", + hardResetDescription: "{branch} budağını {hash} dəyişiklik qeydinə tam sıfırlayın. Ondan sonrakı qeydlər və işçi ağacda qeydə hazırlanmış və ya hazırlanmamış bütün dəyişikliklər cari vəziyyətdən çıxarılacaq.", + highRiskConfirmation: "Bu, yüksək riskli əməliyyatdır. Davam etməzdən əvvəl hədəf dəyişiklik qeydini təsdiqləyin.", + revertCommitComplete: "{hash} qeydinin dəyişiklikləri geri qaytarıldı", + hardResetComplete: "Cari budaq {hash} dəyişiklik qeydinə tam sıfırlandı", + discardWorkingTree: "İşçi ağacdakı dəyişiklikləri ləğv et", + discardWorkingTreeDescription: "İşçi ağacda qeydə hazırlanmış və hazırlanmamış bütün dəyişiklikləri ləğv edin. Bunu geri qaytarmaq mümkün deyil.", + discardWorkingTreeComplete: "İşçi ağacdakı dəyişikliklər ləğv edildi", + sqlPreview: "SQL önbaxışı", + hashCopied: "Dəyişiklik qeydinin heşi kopyalandı", + copyCurrentValue: "Cari dəyəri kopyala", + copyBeforeValue: "Əvvəlki dəyəri kopyala", + copyAfterValue: "Sonrakı dəyəri kopyala", + cellValueCopied: "Xananın dəyəri kopyalandı", + viewCellDiff: "Fərqin təfərrüatlarına bax", + cellDiffTitle: "{table}.{column} fərqi", + cellDiffFormat: "Müqayisə formatı", + cellDiffFormatAuto: "Avtomatik", + cellDiffFormatRaw: "Xam", + cellDiffDetectedFormat: "Aşkar edildi: {format}", + cellDiffFormatFailed: "Formatlama uğursuz oldu; xam dəyər göstərilir: {message}", + cellNullValue: "NULL", + cellRowMissing: "Sətir mövcud deyil", + cellColumnMissing: "Sütun mövcud deyil", + }, + codeSnapshot: { + title: "Kod şəkli", + close: "Bağla", + copy: "Mübadilə buferinə kopyala", + save: "PNG-ni yadda saxla", + copied: "Kopyalandı", + saved: "Yadda saxlanıldı", + failed: "Uğursuz oldu: {message}", + take: "Kodun şəklini çək", + theme: "Mövzu", + themeLight: "Açıq", + themeDark: "Tünd", + windowControls: "Pəncərə idarəetmə elementləri", + lineNumbers: "Sətir nömrələri", + titleLabel: "Başlıq (istəyə bağlı)", + titlePlaceholder: "Məsələn, sorğu nümunəsi", + }, + gridSnapshot: { + open: "Seçilmiş xanaların ekran şəklini çək", + openRows: "Seçilmiş sətirlərin ekran şəklini çək", + openColumns: "Seçilmiş sütunların ekran şəklini çək", + title: "Cədvəl şəkli", + copied: "Kopyalandı", + saved: "Yadda saxlanıldı", + failed: "Uğursuz oldu: {message}", + reset: "Sıfırla", + rows: "{count} sətir", + columns: "{count} sütun", + cells: "{count} xana", + appearance: "Görünüş", + layout: "Düzülüş", + fieldMetadata: "Sahənin metaməlumatları", + theme: "Mövzu", + windowControls: "Pəncərə idarəetmə elementləri", + fieldNames: "Sahə adları", + columnTypes: "Sütun növləri", + columnDetails: "Sahə təsvirləri", + rowNumbers: "Sətir nömrələri", + wrapCells: "Xana məzmununu sətirlərə böl", + transpose: "Sətir və sütunların yerini dəyiş", + compact: "Xanaları yığcamlaşdır", + titleLabel: "Başlıq (istəyə bağlı)", + titlePlaceholder: "Məsələn, sorğu nəticəsi", + }, +}); diff --git a/apps/desktop/src/i18n/locales/docs/az.ts b/apps/desktop/src/i18n/locales/docs/az.ts new file mode 100644 index 0000000000..d64e628bb0 --- /dev/null +++ b/apps/desktop/src/i18n/locales/docs/az.ts @@ -0,0 +1,69 @@ +export default { + title: "Sənədləşdirmə", + groupBySchema: "Sxemlər", + groupByTableGroup: "Cədvəl qrupları", + noGroup: "(qrup yoxdur)", + noSchema: "(sxem yoxdur)", + search: "Cədvəlləri, sütunları, qrupları axtar…", + columns: "Sütunlar", + indexes: "İndekslər", + references: "İstinadlar", + referencedBy: "İstinad edənlər", + localNote: "Yerli", + shadowedComment: "Verilənlər bazasındakı şərh: {comment}", + addNote: "Qeyd əlavə et", + editNote: "Qeydi redaktə et", + newGroup: "Yeni qrup…", + groupName: "Qrupun adı", + groupColour: "Rəng", + deleteGroup: "Qrupu sil", + enumValues: "Dəyərlər", + usedBy: "İstifadə edənlər", + openDiagram: "Sxem diaqramını aç", + saving: "Yadda saxlanılır…", + saved: "Yadda saxlanıldı", + saveFailed: "Qeydləri yadda saxlamaq mümkün olmadı: {error}", + overview: "Ümumi baxış", + groupBy: "Qruplaşdırma meyarı", + searchLabel: "Axtarış", + groups: "Qruplar", + relationships: "Əlaqələr", + columnHeader: "Sütun", + typeHeader: "Növ", + settingsHeader: "Parametrlər", + noteHeader: "Qeyd", + nameHeader: "Ad", + definitionHeader: "Tərif", + noOutgoingRelationships: "Bu cədvəl başqa heç bir cədvələ istinad etmir.", + noIncomingRelationships: "Heç bir cədvəl bu cədvələ istinad etmir.", + diagram: "Diaqram", + language: "Dil", + theme: "Tema", + themeLight: "Açıq", + themeDark: "Tünd", + exportHtml: "HTML-ə ixrac et…", + exporting: "İxrac edilir…", + exportFailed: "İxrac etmək mümkün olmadı: {error}", + warnings: { + tableSkipped: { + title: "Bir cədvəli sənədləşdirmək mümkün olmadı", + detail: "{table} ötürüldü: {reason}. Bu sənədləşdirmədə yer almır.", + }, + noForeignKeyMetadata: { + title: "Əlaqələr mövcud deyil", + detail: "{engine} xarici açar metaverilənlərini təqdim etmir, buna görə əlaqə xətlərini müəyyən etmək mümkün olmadı. Bu mühərrik üçün diaqram tamdır.", + }, + commentsUnsupported: { + title: "Verilənlər bazasının şərhləri əlçatan deyil", + detail: "{engine} cədvəl və ya sütun şərhlərini dəstəkləmir, buna görə buradakı bütün təsvirlər bu layihənin öz qeydlərindən götürülüb.", + }, + orphanedNotes: { + title: "Bəzi qeydlər artıq heç nəyə uyğun gəlmir", + detail: "{count} qeyd artıq mövcud olmayan cədvələ və ya sütuna istinad edir. Heç nə silinməyib — qeydlər faylında onları yenidən uyğunlaşdırın və ya çıxarın.", + }, + dbmlOmitted: { + title: "DBML-də ifadə etmək mümkün deyil", + detail: "{table} cədvəlindəki {item} burada sənədləşdirilib, lakin ixrac edilmiş DBML-ə daxil edilməyib: {reason}.", + }, + }, +}; diff --git a/apps/desktop/src/i18n/locales/meilisearchManagement.ts b/apps/desktop/src/i18n/locales/meilisearchManagement.ts index c2215d34f3..9b9f1ecb16 100644 --- a/apps/desktop/src/i18n/locales/meilisearchManagement.ts +++ b/apps/desktop/src/i18n/locales/meilisearchManagement.ts @@ -220,6 +220,34 @@ const zhCN = { }; export const meilisearchManagementMessages = { + az: { + ...en, + systemManagement: "Sistemin idarə edilməsi", + overview: "Ümumi baxış", + apiKeys: "API açarları", + tasks: "Tapşırıqlar", + health: "İşlək vəziyyət", + version: "Versiya", + indexCount: "İndekslər", + totalDocuments: "Sənədlərin ümumi sayı", + keyCount: "Açarlar", + refresh: "Yenilə", + rowActions: "Əməliyyatlar", + previous: "Əvvəlki", + next: "Növbəti", + createKey: "Açar yarat", + editKey: "Açarı redaktə et", + deleteKey: "Açarı sil", + noKeys: "API açarları tapılmadı", + filters: "Süzgəclər", + applyFilters: "Süzgəcləri tətbiq et", + receivedDocuments: "Qəbul edilmiş sənədlər", + indexedDocuments: "İndekslənmiş sənədlər", + noTasks: "Tapşırıqlar tapılmadı", + cancelTask: "Tapşırığı ləğv et", + deleteTaskHistory: "Tapşırıq tarixçəsini sil", + readOnlyDisabled: "Bu əlaqə yalnız oxumaq üçündür; idarəetmə əməliyyatları deaktivdir.", + }, en, "zh-CN": zhCN, "zh-TW": { @@ -415,6 +443,7 @@ export const meilisearchManagementMessages = { }, } as const; +export const meilisearchManagementAz = meilisearchManagementMessages.az; export const meilisearchManagementEn = meilisearchManagementMessages.en; export const meilisearchManagementZhCN = meilisearchManagementMessages["zh-CN"]; export const meilisearchManagementZhTW = meilisearchManagementMessages["zh-TW"]; diff --git a/apps/desktop/src/lib/__tests__/connection/zookeeperConnectionDialog.spec.ts b/apps/desktop/src/lib/__tests__/connection/zookeeperConnectionDialog.spec.ts index 981069b93b..1da1172366 100644 --- a/apps/desktop/src/lib/__tests__/connection/zookeeperConnectionDialog.spec.ts +++ b/apps/desktop/src/lib/__tests__/connection/zookeeperConnectionDialog.spec.ts @@ -4,7 +4,7 @@ import { describe, expect, it } from "vitest"; const dialogSource = readFileSync(new URL("../../../components/connection/ConnectionDialog.vue", import.meta.url), "utf8"); const enSource = readFileSync(new URL("../../../i18n/locales/en.ts", import.meta.url), "utf8"); const zhCnSource = readFileSync(new URL("../../../i18n/locales/zh-CN.ts", import.meta.url), "utf8"); -const fallbackLocaleSources = ["es", "it", "ja", "ko", "pt-BR", "tr", "zh-TW"].map((locale) => readFileSync(new URL(`../../../i18n/locales/${locale}.ts`, import.meta.url), "utf8")); +const fallbackLocaleSources = ["az", "es", "it", "ja", "ko", "pt-BR", "tr", "zh-TW"].map((locale) => readFileSync(new URL(`../../../i18n/locales/${locale}.ts`, import.meta.url), "utf8")); describe("ZooKeeper connection dialog", () => { it("binds the existing Select component to the ZooKeeper auth_scheme helper", () => { diff --git a/apps/desktop/src/lib/app/localeOptions.ts b/apps/desktop/src/lib/app/localeOptions.ts index 4843e4bb97..17a8d41b8c 100644 --- a/apps/desktop/src/lib/app/localeOptions.ts +++ b/apps/desktop/src/lib/app/localeOptions.ts @@ -2,6 +2,7 @@ import type { Locale } from "@/i18n"; export const LOCALE_OPTIONS: { value: Locale; flag: string; label: string }[] = [ { value: "en", flag: "🇺🇸", label: "English" }, + { value: "az", flag: "🇦🇿", label: "Azərbaycan" }, { value: "es", flag: "🇪🇸", label: "Español" }, { value: "it", flag: "🇮🇹", label: "Italiano" }, { value: "ja", flag: "🇯🇵", label: "日本語" }, diff --git a/apps/desktop/src/lib/settings/__tests__/settingsSearch.spec.ts b/apps/desktop/src/lib/settings/__tests__/settingsSearch.spec.ts index 011638d71c..ac7b2f4d13 100644 --- a/apps/desktop/src/lib/settings/__tests__/settingsSearch.spec.ts +++ b/apps/desktop/src/lib/settings/__tests__/settingsSearch.spec.ts @@ -146,7 +146,7 @@ describe("settings search", () => { }); it("defines the WebDAV Web-runtime notice in every supported locale", () => { - for (const locale of ["zh-CN", "zh-TW", "en", "es", "it", "ja", "ko", "pt-BR", "tr"]) { + for (const locale of ["zh-CN", "zh-TW", "en", "es", "it", "ja", "ko", "pt-BR", "tr", "az"]) { const source = readFileSync(new URL(`../../../i18n/locales/${locale}.ts`, import.meta.url), "utf8"); expect(source, locale).toContain("syncWebDavWebDescription:"); } @@ -257,7 +257,7 @@ describe("settings search", () => { }); it("defines the performance section title in every supported locale", () => { - for (const locale of ["zh-CN", "zh-TW", "en", "es", "it", "ja", "ko", "pt-BR", "tr"]) { + for (const locale of ["zh-CN", "zh-TW", "en", "es", "it", "ja", "ko", "pt-BR", "tr", "az"]) { const source = readFileSync(new URL(`../../../i18n/locales/${locale}.ts`, import.meta.url), "utf8"); expect(source, locale).toContain("performanceSection:"); } diff --git a/crates/dbx-core/assets/docs-export.js b/crates/dbx-core/assets/docs-export.js index f9cd028627..bf9f955d04 100644 --- a/crates/dbx-core/assets/docs-export.js +++ b/crates/dbx-core/assets/docs-export.js @@ -61,4 +61,4 @@ ${this.parser.parse(e)} ${e} `}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?`th`:`td`;return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+` `}strong({tokens:e}){return`${this.parser.parseInline(e)}`}em({tokens:e}){return`${this.parser.parseInline(e)}`}codespan({text:e}){return`${ec(e,!0)}`}br(e){return`
`}del({tokens:e}){return`${this.parser.parseInline(e)}`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=tc(e);if(i===null)return r;e=i;let a=``+r+``,a}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=tc(e);if(i===null)return ec(n);e=i;let a=`${ec(n)}`,a}text(e){return`tokens`in e&&e.tokens?this.parser.parseInline(e.tokens):`escaped`in e&&e.escaped?e.text:ec(e.text)}},fc=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return``+e}image({text:e}){return``+e}br(){return``}checkbox({raw:e}){return e}},pc=class e{options;renderer;textRenderer;constructor(e){this.options=e||Ho,this.options.renderer=this.options.renderer||new dc,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new fc}static parse(t,n){return new e(n).parse(t)}static parseInline(t,n){return new e(n).parseInline(t)}parse(e){this.renderer.parser=this;let t=``;for(let n=0;n{let i=e[r].flat(1/0);n=n.concat(this.walkTokens(i,t))}):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error(`extension name required`);if(`renderer`in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return r===!1&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if(`tokenizer`in e){if(!e.level||e.level!==`block`&&e.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&(e.level===`block`?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:e.level===`inline`&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}`childTokens`in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new dc(this.defaults);for(let n in e.renderer){if(!(n in t))throw Error(`renderer '${n}' does not exist`);if([`options`,`parser`].includes(n))continue;let r=n,i=e.renderer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n||``}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new lc(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw Error(`tokenizer '${n}' does not exist`);if([`options`,`rules`,`lexer`].includes(n))continue;let r=n,i=e.tokenizer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new mc;for(let n in e.hooks){if(!(n in t))throw Error(`hook '${n}' does not exist`);if([`options`,`block`].includes(n))continue;let r=n,i=e.hooks[r],a=t[r];t[r]=mc.passThroughHooks.has(n)?e=>{if(this.defaults.async&&mc.passThroughHooksRespectAsync.has(n))return(async()=>{let n=await i.call(t,e);return a.call(t,n)})();let r=i.call(t,e);return a.call(t,r)}:(...e)=>{if(this.defaults.async)return(async()=>{let n=await i.apply(t,e);return n===!1&&(n=await a.apply(t,e)),n})();let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return uc.lex(e,t??this.defaults)}parser(e,t){return pc.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return a(Error(`marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.`));if(typeof t>`u`||t===null)return a(Error(`marked(): input parameter is undefined or null`));if(typeof t!=`string`)return a(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(t)+`, string expected`));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let n=i.hooks?await i.hooks.preprocess(t):t,r=await(i.hooks?await i.hooks.provideLexer(e):e?uc.lex:uc.lexInline)(n,i),a=i.hooks?await i.hooks.processAllTokens(r):r;i.walkTokens&&await Promise.all(this.walkTokens(a,i.walkTokens));let o=await(i.hooks?await i.hooks.provideParser(e):e?pc.parse:pc.parseInline)(a,i);return i.hooks?await i.hooks.postprocess(o):o})().catch(a);try{i.hooks&&(t=i.hooks.preprocess(t));let n=(i.hooks?i.hooks.provideLexer(e):e?uc.lex:uc.lexInline)(t,i);i.hooks&&(n=i.hooks.processAllTokens(n)),i.walkTokens&&this.walkTokens(n,i.walkTokens);let r=(i.hooks?i.hooks.provideParser(e):e?pc.parse:pc.parseInline)(n,i);return i.hooks&&(r=i.hooks.postprocess(r)),r}catch(e){return a(e)}}}onError(e,t){return n=>{if(n.message+=` -Please report this to https://github.com/markedjs/marked.`,e){let e=`

An error occurred:

`+ec(n.message+``,!0)+`
`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}},gc=new hc;function $(e,t){return gc.parse(e,t)}$.options=$.setOptions=function(e){return gc.setOptions(e),$.defaults=gc.defaults,Uo($.defaults),$},$.getDefaults=Vo,$.defaults=Ho,$.use=function(...e){return gc.use(...e),$.defaults=gc.defaults,Uo($.defaults),$},$.walkTokens=function(e,t){return gc.walkTokens(e,t)},$.parseInline=gc.parseInline,$.Parser=pc,$.parser=pc.parse,$.Renderer=dc,$.TextRenderer=fc,$.Lexer=uc,$.lexer=uc.lex,$.Tokenizer=lc,$.Hooks=mc,$.parse=$,$.options,$.setOptions,$.use,$.walkTokens,$.parseInline,pc.parse,uc.lex;function _c(e){return String(e??``).replace(/&/g,`&`).replace(//g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}var vc=/^(https?:|mailto:)/i;function yc(e){let t=String(e??``).trim();return t===``||/^[/\\]{2}/.test(t)?null:t.startsWith(`#`)||t.startsWith(`/`)||t.startsWith(`./`)||t.startsWith(`../`)||vc.test(t)?t:null}var bc=new hc({renderer:{html({text:e}){return _c(e)},link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=yc(e);if(i===null)return r;let a=t?` title="${_c(t)}"`:``;return`${r}`},image({href:e,title:t,text:n}){let r=yc(e);if(r===null)return _c(n);let i=t?` title="${_c(t)}"`:``;return`${_c(n)}`}}});function xc(e){return e===null||e.trim()===``?``:bc.parse(e)}var Sc={class:`text-sm text-muted-foreground`},Cc=[`title`,`innerHTML`],wc=L({__name:`NoteEditor`,props:{modelValue:{},readonly:{type:Boolean},translate:{type:Function}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,i=P(!1),a=P(``),o=P(null);async function s(){n.readonly||(a.value=n.modelValue,i.value=!0,await hn(),o.value?.focus())}function c(){i.value=!1,a.value!==n.modelValue&&r(`update:modelValue`,a.value)}function l(){a.value=n.modelValue,i.value=!1}return(t,n)=>(U(),W(`div`,Sc,[i.value?On((U(),W(`textarea`,{key:0,ref_key:`input`,ref:o,"onUpdate:modelValue":n[0]||=e=>a.value=e,rows:`4`,class:`w-full resize-y rounded border border-border bg-background p-2 font-mono text-xs text-foreground outline-none focus:border-ring`,onBlur:n[1]||=e=>c(),onKeydown:n[2]||=lo(e=>l(),[`escape`])},null,544)),[[to,a.value]]):e.modelValue.trim()===``?e.readonly?q(``,!0):(U(),W(`button`,{key:2,type:`button`,class:`rounded border border-dashed border-border px-2 py-1 text-xs text-muted-foreground transition-colors hover:bg-muted/40`,onClick:n[4]||=e=>s()},O(e.translate(`docs.addNote`)),1)):(U(),W(`div`,{key:1,class:D([`leading-relaxed`,e.readonly?``:`cursor-text rounded transition-colors hover:bg-muted/30`]),title:e.readonly?void 0:e.translate(`docs.editNote`),onClick:n[3]||=e=>s(),innerHTML:F(xc)(e.modelValue)},null,10,Cc))]))}}),Tc={class:`flex flex-col gap-5`},Ec={class:`flex flex-col gap-2`},Dc={class:`flex flex-wrap items-center gap-2`},Oc={class:`font-mono text-lg font-semibold text-foreground`},kc={key:0,class:`rounded bg-muted/50 px-1.5 py-0.5 text-[10px] uppercase text-muted-foreground`},Ac={class:`mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},jc={class:`flex flex-wrap gap-1`},Mc={class:`mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},Nc={key:0,class:`text-xs text-muted-foreground`},Pc={key:1,class:`flex flex-col gap-1`},Fc=[`onClick`],Ic=L({__name:`EnumPage`,props:{enumType:{},snapshot:{},translate:{type:Function}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,i=Y(()=>n.enumType.schema?`${n.enumType.schema}.${n.enumType.name}`:n.enumType.name),a=Y(()=>Bo(n.snapshot,n.enumType.name));return(t,n)=>(U(),W(`article`,Tc,[G(`header`,Ec,[G(`div`,Dc,[G(`h2`,Oc,O(i.value),1),e.enumType.synthesized?(U(),W(`span`,kc,`synthesized`)):q(``,!0)]),K(wc,{"model-value":e.enumType.note??``,readonly:``,translate:e.translate},null,8,[`model-value`,`translate`])]),G(`section`,null,[G(`h3`,Ac,O(e.translate(`docs.enumValues`)),1),G(`ul`,jc,[(U(!0),W(V,null,R(e.enumType.values,e=>(U(),W(`li`,{key:e,class:`rounded bg-muted/50 px-1.5 py-0.5 font-mono text-[11px] text-foreground`},O(e),1))),128))])]),G(`section`,null,[G(`h3`,Mc,O(e.translate(`docs.usedBy`)),1),a.value.length===0?(U(),W(`p`,Nc,`No column uses this enum.`)):(U(),W(`ul`,Pc,[(U(!0),W(V,null,R(a.value,e=>(U(),W(`li`,{key:`${e.tableKey}.${e.column}`,class:`text-xs`},[G(`button`,{type:`button`,class:`w-full rounded border border-border bg-background px-2 py-1.5 text-left font-mono transition-colors hover:bg-muted/40`,onClick:t=>r(`select`,e.tableKey)},O(e.tableKey)+`.`+O(e.column),9,Fc)]))),128))]))])]))}}),Lc={class:`flex flex-col gap-3`},Rc={class:`flex flex-col gap-1`},zc={class:`text-[10px] uppercase tracking-wide text-muted-foreground`},Bc=[`value`,`placeholder`],Vc={class:`flex flex-col gap-2`},Hc={class:`text-[10px] uppercase tracking-wide text-muted-foreground`},Uc={class:`flex items-center gap-1.5`},Wc=[`title`,`onClick`],Gc=[`value`,`title`],Kc={class:`grid grid-cols-2 gap-2`},qc={class:`docs-ground-light flex items-center gap-2 overflow-hidden rounded border border-border bg-white p-2`},Jc={class:`dark flex items-center gap-2 overflow-hidden rounded border border-border bg-neutral-900 p-2`},Yc={class:`flex justify-end`},Xc=L({__name:`GroupEditor`,props:{group:{},translate:{type:Function}},emits:[`update:group`,`delete`],setup(e,{emit:t}){let n=e,r=t,i=Array.from({length:12},(e,t)=>t*30);function a(e){r(`update:group`,{...n.group,name:e.target.value})}function o(e){r(`update:group`,{...n.group,hue:e})}function s(e){o(Number(e.target.value))}function c(e){return`${n.translate(`docs.groupColour`)} ${e}°`}return(t,n)=>(U(),W(`div`,Lc,[G(`label`,Rc,[G(`span`,zc,O(e.translate(`docs.groupName`)),1),G(`input`,{type:`text`,value:e.group.name,placeholder:e.translate(`docs.groupName`),class:`rounded border border-border bg-background px-2 py-1 text-sm text-foreground outline-none focus:border-ring`,onInput:n[0]||=e=>a(e)},null,40,Bc)]),G(`div`,Vc,[G(`span`,Hc,O(e.translate(`docs.groupColour`)),1),G(`div`,Uc,[(U(!0),W(V,null,R(F(i),t=>(U(),W(`button`,{key:t,type:`button`,class:D([`docs-group h-6 w-6 rounded-full border ring-offset-background transition hover:scale-105`,e.group.hue===t?`ring-2 ring-ring ring-offset-2`:`border-border`]),style:E([{"background-color":`var(--group-c)`},F(Oo)(t)]),title:c(t),onClick:e=>o(t)},null,14,Wc))),128))]),G(`input`,{type:`range`,min:`0`,max:`359`,value:e.group.hue,class:`w-full`,title:c(e.group.hue),onInput:n[1]||=e=>s(e)},null,40,Gc),G(`div`,Kc,[G(`div`,qc,[G(`span`,{class:`docs-group h-4 w-4 shrink-0 rounded-full`,style:E([{"background-color":`var(--group-c)`},F(Oo)(e.group.hue)])},null,4),G(`span`,{class:`docs-group truncate rounded px-1.5 py-0.5 text-[11px] font-medium`,style:E([{"background-color":`var(--group-tint)`,color:`var(--group-c)`},F(Oo)(e.group.hue)])},O(e.group.name),5)]),G(`div`,Jc,[G(`span`,{class:`docs-group h-4 w-4 shrink-0 rounded-full`,style:E([{"background-color":`var(--group-c)`},F(Oo)(e.group.hue)])},null,4),G(`span`,{class:`docs-group truncate rounded px-1.5 py-0.5 text-[11px] font-medium`,style:E([{"background-color":`var(--group-tint)`,color:`var(--group-c)`},F(Oo)(e.group.hue)])},O(e.group.name),5)])])]),G(`div`,Yc,[G(`button`,{type:`button`,class:`rounded border border-border px-2 py-1 text-xs text-muted-foreground transition-colors hover:bg-muted/40`,onClick:n[2]||=t=>r(`delete`,e.group.id)},O(e.translate(`docs.deleteGroup`)),1)])]))}});function Zc(e,t={},n=!1){let r=Math.max(1,t.columnsPerRow??Math.ceil(Math.sqrt(Math.max(e.length,1)))),i=t.cardWidth??260,a=t.gapX??56,o=t.gapY??40,s=t.margin??40,c=t.rowHeight,l=e=>c??44+(e.columns?.length??0)*24+12,u={},d=s;for(let t=0;t{let r={x:s+t*(i+a),y:d};u[e.name]=r,n&&e.schema&&(u[`${e.schema}.${e.name}`]=r)}),d+=f+o}return u}function Qc(e,t,n){let r=t.x-e.x,i=t.y-e.y;if(r===0&&i===0)return{x:e.x,y:e.y};let a=r===0?1/0:n.width/Math.abs(r),o=i===0?1/0:n.height/Math.abs(i),s=Math.min(a,o);return{x:e.x+r*s,y:e.y+i*s}}var $c={class:`overflow-auto`},el=[`width`,`height`,`viewBox`],tl=[`x1`,`y1`,`x2`,`y2`],nl=[`x`,`y`,`onClick`],rl=[`x`,`y`],il=[`x`,`y`],al=260,ol=220,sl=40,cl=8,ll=L({__name:`SchemaDiagram`,props:{snapshot:{}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,i={width:al/2,height:ol/2},a=Y(()=>Zc(n.snapshot.tables.map(e=>({name:X(e),columns:e.columns})))),o=Y(()=>new Map(n.snapshot.groups.map(e=>[e.id,e]))),s=Y(()=>n.snapshot.tables.map(e=>{let t=X(e),n=a.value[t]??{x:sl,y:sl},r=e.groupId?o.value.get(e.groupId)??null:null;return{key:t,x:n.x,y:n.y,hue:r?.hue??null,columns:e.columns.slice(0,cl).map(e=>e.name)}}));function c(e){let t=a.value[e]??{x:sl,y:sl};return{x:t.x+al/2,y:t.y+ol/2}}let l=Y(()=>{let e=new Set(Object.keys(a.value));return n.snapshot.relationships.map(e=>({relationship:e,fromKey:X({schema:e.from.schema,name:e.from.table}),toKey:X({schema:e.to.schema,name:e.to.table})})).filter(({fromKey:t,toKey:n})=>e.has(t)&&e.has(n)).map(({relationship:e,fromKey:t,toKey:n})=>{let r=c(t),a=c(n);return{id:e.id,from:Qc(r,a,i),to:Qc(a,r,i)}})}),u=Y(()=>Math.max(0,...s.value.map(e=>e.x+al))+sl),d=Y(()=>Math.max(0,...s.value.map(e=>e.y+ol))+sl);function f(e){return e===null?{}:{...Oo(e),fill:`var(--group-tint)`}}return(e,t)=>(U(),W(`div`,$c,[(U(),W(`svg`,{width:u.value,height:d.value,viewBox:`0 0 ${u.value} ${d.value}`,class:`block`},[(U(!0),W(V,null,R(l.value,e=>(U(),W(`line`,{key:e.id,x1:e.from.x,y1:e.from.y,x2:e.to.x,y2:e.to.y,class:`stroke-border`,"stroke-width":`1.5`},null,8,tl))),128)),(U(!0),W(V,null,R(s.value,e=>(U(),W(`g`,{key:e.key},[G(`rect`,{x:e.x,y:e.y,width:al,height:ol,rx:`6`,class:D([`cursor-pointer stroke-border`,e.hue===null?`fill-card`:`docs-group`]),style:E(f(e.hue)),"stroke-width":`1`,onClick:t=>r(`select`,e.key)},null,14,nl),G(`text`,{x:e.x+10,y:e.y+22,class:`pointer-events-none fill-foreground font-mono text-[11px] font-semibold`},O(e.key),9,rl),(U(!0),W(V,null,R(e.columns,(t,n)=>(U(),W(`text`,{key:t,x:e.x+10,y:e.y+42+n*18,class:`pointer-events-none fill-muted-foreground font-mono text-[10px]`},O(t),9,il))),128))]))),128))],8,el))]))}}),ul={class:`overflow-hidden rounded-md border border-border`},dl={class:`w-full text-xs`},fl={class:`bg-muted/30`},pl={class:`px-2 py-1.5 text-left font-medium text-muted-foreground`},ml={class:`px-2 py-1.5 text-left font-medium text-muted-foreground`},hl={class:`px-2 py-1.5 text-left font-medium text-muted-foreground`},gl={class:`px-2 py-1.5 text-left font-medium text-muted-foreground`},_l={class:`px-2 py-1.5 font-mono font-medium text-foreground`},vl={class:`px-2 py-1.5 font-mono text-muted-foreground`},yl={class:`px-2 py-1.5`},bl={class:`flex flex-wrap gap-1`},xl={class:`px-2 py-1.5 text-muted-foreground`},Sl={class:`flex items-start gap-1`},Cl=[`title`],wl=L({__name:`ColumnTable`,props:{columns:{},columnNotes:{},tableKey:{},readonly:{type:Boolean},translate:{type:Function}},emits:[`edit`],setup(e,{emit:t}){let n=e,r=t;function i(e){let t=e.data_type.trim();if(t.includes(`(`))return t;if(e.character_maximum_length!==null)return`${t}(${e.character_maximum_length})`;if(e.numeric_precision!==null){let n=e.numeric_scale===null?``:`,${e.numeric_scale}`;return`${t}(${e.numeric_precision}${n})`}return t}function a(e){let t=[];return e.is_primary_key&&t.push(`pk`),e.is_nullable||t.push(`not null`),e.column_default!==null&&t.push(`default: ${e.column_default}`),e.extra!==null&&e.extra!==``&&t.push(e.extra),e.enum_values!==void 0&&e.enum_values.length>0&&t.push(`enum: ${e.enum_values.join(`, `)}`),t}function o(e){return n.columnNotes[e.name]??null}function s(e){let t=o(e)?.shadowed;return t?`Database comment: ${t}`:void 0}return(t,n)=>(U(),W(`div`,ul,[G(`table`,dl,[G(`thead`,null,[G(`tr`,fl,[G(`th`,pl,O(e.translate(`docs.columnHeader`)),1),G(`th`,ml,O(e.translate(`docs.typeHeader`)),1),G(`th`,hl,O(e.translate(`docs.settingsHeader`)),1),G(`th`,gl,O(e.translate(`docs.noteHeader`)),1)])]),G(`tbody`,null,[(U(!0),W(V,null,R(e.columns,t=>(U(),W(`tr`,{key:t.name,class:`border-t border-border align-top`},[G(`td`,_l,O(t.name),1),G(`td`,vl,O(i(t)),1),G(`td`,yl,[G(`div`,bl,[(U(!0),W(V,null,R(a(t),e=>(U(),W(`span`,{key:e,class:`rounded bg-muted/50 px-1.5 py-0.5 text-[10px] text-muted-foreground`},O(e),1))),128))])]),G(`td`,xl,[G(`div`,Sl,[o(t)?.source===`LOCAL`?(U(),W(`span`,{key:0,class:`mt-0.5 shrink-0 text-[10px] font-medium`,title:s(t)},`⬤ `+O(e.translate(`docs.localNote`)),9,Cl)):q(``,!0),K(wc,{class:`min-w-0 flex-1`,"model-value":o(t)?.note??``,readonly:e.readonly,translate:e.translate,"onUpdate:modelValue":n=>r(`edit`,{kind:`columnNote`,tableKey:e.tableKey,column:t.name,note:n})},null,8,[`model-value`,`readonly`,`translate`,`onUpdate:modelValue`])])])]))),128))])])]))}}),Tl={class:`flex items-center gap-1.5`},El=[`value`],Dl={value:``},Ol=[`value`],kl=`__dbx_new_group__`,Al=L({__name:`GroupPicker`,props:{groups:{},modelValue:{},translate:{type:Function}},emits:[`update:modelValue`,`create`],setup(e,{emit:t}){let n=e,r=t,i=Y(()=>n.groups.find(e=>e.id===n.modelValue)??null);function a(e){let t=e.target;if(t.value===kl&&!n.groups.some(e=>e.id===kl)){t.value=n.modelValue??``,r(`create`);return}r(`update:modelValue`,t.value===``?null:t.value)}return(t,n)=>(U(),W(`div`,Tl,[i.value?(U(),W(`span`,{key:0,class:`docs-group h-3 w-3 shrink-0 rounded-full`,style:E([{"background-color":`var(--group-c)`},F(Oo)(i.value.hue)])},null,4)):q(``,!0),G(`select`,{value:e.modelValue??``,class:`rounded border border-border bg-background px-2 py-1 text-xs text-foreground outline-none focus:border-ring`,onChange:n[0]||=e=>a(e)},[G(`option`,Dl,O(e.translate(`docs.noGroup`)),1),(U(!0),W(V,null,R(e.groups,e=>(U(),W(`option`,{key:e.id,value:e.id},O(e.name),9,Ol))),128)),G(`option`,{value:kl},O(e.translate(`docs.newGroup`)),1)],40,El)]))}}),jl={class:`grid gap-4 sm:grid-cols-2`},Ml={class:`mb-1.5 text-xs font-medium text-muted-foreground`},Nl={key:0,class:`text-xs text-muted-foreground`},Pl={key:1,class:`flex flex-col gap-1`},Fl=[`onClick`],Il={class:`font-mono`},Ll={class:`mx-1.5 text-muted-foreground`},Rl={class:`font-mono`},zl={key:0,class:`ml-1.5 text-[10px] text-muted-foreground`},Bl={class:`mb-1.5 text-xs font-medium text-muted-foreground`},Vl={key:0,class:`text-xs text-muted-foreground`},Hl={key:1,class:`flex flex-col gap-1`},Ul=[`onClick`],Wl={class:`font-mono`},Gl={class:`mx-1.5 text-muted-foreground`},Kl={class:`font-mono`},ql={key:0,class:`ml-1.5 text-[10px] text-muted-foreground`},Jl=L({__name:`RelationshipList`,props:{relationships:{},schema:{},table:{},translate:{type:Function}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t;function i(e){return e.table===n.table&&(e.schema??null)===n.schema}function a(e){return X({schema:e.schema,name:e.table})}function o(e){return`${a(e)}.${e.column}`}function s(e){return e.cardinality===`ONE_TO_ONE`?`1 – 1`:`* – 1`}function c(e){let t=[];return e.onUpdate&&t.push(`on update ${e.onUpdate}`),e.onDelete&&t.push(`on delete ${e.onDelete}`),t}let l=Y(()=>n.relationships.filter(e=>i(e.from))),u=Y(()=>n.relationships.filter(e=>i(e.to)));return(t,n)=>(U(),W(`div`,jl,[G(`section`,null,[G(`h4`,Ml,O(e.translate(`docs.references`))+` (`+O(l.value.length)+`)`,1),l.value.length===0?(U(),W(`p`,Nl,O(e.translate(`docs.noOutgoingRelationships`)),1)):(U(),W(`ul`,Pl,[(U(!0),W(V,null,R(l.value,e=>(U(),W(`li`,{key:e.id,class:`text-xs`},[G(`button`,{type:`button`,class:`w-full rounded border border-border bg-background px-2 py-1.5 text-left transition-colors hover:bg-muted/40`,onClick:t=>r(`select`,a(e.to))},[G(`span`,Il,O(e.from.column),1),G(`span`,Ll,O(s(e)),1),G(`span`,Rl,O(o(e.to)),1),c(e).length>0?(U(),W(`span`,zl,O(c(e).join(`, `)),1)):q(``,!0)],8,Fl)]))),128))]))]),G(`section`,null,[G(`h4`,Bl,O(e.translate(`docs.referencedBy`))+` (`+O(u.value.length)+`)`,1),u.value.length===0?(U(),W(`p`,Vl,O(e.translate(`docs.noIncomingRelationships`)),1)):(U(),W(`ul`,Hl,[(U(!0),W(V,null,R(u.value,e=>(U(),W(`li`,{key:e.id,class:`text-xs`},[G(`button`,{type:`button`,class:`w-full rounded border border-border bg-background px-2 py-1.5 text-left transition-colors hover:bg-muted/40`,onClick:t=>r(`select`,a(e.from))},[G(`span`,Wl,O(o(e.from)),1),G(`span`,Gl,O(s(e)),1),G(`span`,Kl,O(e.to.column),1),c(e).length>0?(U(),W(`span`,ql,O(c(e).join(`, `)),1)):q(``,!0)],8,Ul)]))),128))]))])]))}}),Yl={class:`flex flex-col gap-5`},Xl={class:`flex flex-col gap-2`},Zl={class:`flex flex-wrap items-center gap-2`},Ql={class:`font-mono text-lg font-semibold text-foreground`},$l={class:`rounded bg-muted/50 px-1.5 py-0.5 text-[10px] uppercase text-muted-foreground`},eu={key:1,class:`text-[10px] text-muted-foreground`},tu={class:`flex items-start gap-2`},nu=[`title`],ru={class:`mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},iu={key:0},au={class:`mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},ou={class:`overflow-hidden rounded-md border border-border`},su={class:`w-full text-xs`},cu={class:`bg-muted/30`},lu={class:`px-2 py-1.5 text-left font-medium text-muted-foreground`},uu={class:`px-2 py-1.5 text-left font-medium text-muted-foreground`},du={class:`px-2 py-1.5 text-left font-medium text-muted-foreground`},fu={class:`px-2 py-1.5 font-mono`},pu={class:`px-2 py-1.5 font-mono text-muted-foreground`},mu={class:`px-2 py-1.5`},hu={class:`flex flex-wrap gap-1 text-[10px] text-muted-foreground`},gu={key:0,class:`rounded bg-muted/50 px-1.5 py-0.5`},_u={key:1,class:`rounded bg-muted/50 px-1.5 py-0.5`},vu={key:2,class:`rounded bg-muted/50 px-1.5 py-0.5`},yu={key:3,class:`rounded bg-muted/50 px-1.5 py-0.5`},bu={class:`mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},xu={key:1},Su={class:`mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},Cu={class:`overflow-x-auto rounded-md border border-border bg-muted/20 p-2 font-mono text-xs`},wu=L({__name:`TablePage`,props:{table:{},relationships:{},group:{},annotationGroups:{},readonly:{type:Boolean},translate:{type:Function}},emits:[`select`,`edit`,`createGroup`],setup(e,{emit:t}){let n=e,r=t,i=Y(()=>X(n.table)),a=Y(()=>n.table.kind.toLowerCase().replace(/_/g,` `)),o=Y(()=>n.table.shadowedNote?`Database comment: ${n.table.shadowedNote}`:void 0);return(t,n)=>(U(),W(`article`,Yl,[G(`header`,Xl,[G(`div`,Zl,[G(`h2`,Ql,O(i.value),1),G(`span`,$l,O(a.value),1),e.group?(U(),W(`span`,{key:0,class:`docs-group rounded px-1.5 py-0.5 text-[10px] font-medium`,style:E([{"background-color":`var(--group-tint)`,color:`var(--group-c)`},F(Oo)(e.group.hue)])},O(e.group.name),5)):q(``,!0),e.table.estimatedRows===null?q(``,!0):(U(),W(`span`,eu,` ~`+O(e.table.estimatedRows)+` rows `,1))]),G(`div`,tu,[e.table.noteSource===`LOCAL`?(U(),W(`span`,{key:0,class:`mt-0.5 shrink-0 text-[10px] font-medium text-muted-foreground`,title:o.value},`⬤ `+O(e.translate(`docs.localNote`)),9,nu)):q(``,!0),K(wc,{class:`min-w-0 flex-1`,"model-value":e.table.note??``,readonly:e.readonly,translate:e.translate,"onUpdate:modelValue":n[0]||=e=>r(`edit`,{kind:`tableNote`,tableKey:i.value,note:e})},null,8,[`model-value`,`readonly`,`translate`])]),e.readonly?q(``,!0):(U(),ji(Al,{key:0,groups:e.annotationGroups,"model-value":e.table.groupId,translate:e.translate,"onUpdate:modelValue":n[1]||=e=>r(`edit`,{kind:`tableGroup`,tableKey:i.value,groupId:e}),onCreate:n[2]||=e=>r(`createGroup`,i.value)},null,8,[`groups`,`model-value`,`translate`]))]),G(`section`,null,[G(`h3`,ru,O(e.translate(`docs.columns`)),1),K(wl,{columns:e.table.columns,"column-notes":e.table.columnNotes,"table-key":i.value,readonly:e.readonly,translate:e.translate,onEdit:n[3]||=e=>r(`edit`,e)},null,8,[`columns`,`column-notes`,`table-key`,`readonly`,`translate`])]),e.table.indexes.length>0?(U(),W(`section`,iu,[G(`h3`,au,O(e.translate(`docs.indexes`)),1),G(`div`,ou,[G(`table`,su,[G(`thead`,null,[G(`tr`,cu,[G(`th`,lu,O(e.translate(`docs.nameHeader`)),1),G(`th`,uu,O(e.translate(`docs.columns`)),1),G(`th`,du,O(e.translate(`docs.settingsHeader`)),1)])]),G(`tbody`,null,[(U(!0),W(V,null,R(e.table.indexes,e=>(U(),W(`tr`,{key:e.name,class:`border-t border-border align-top`},[G(`td`,fu,O(e.name),1),G(`td`,pu,[zi(O(e.columns.join(`, `)),1),e.included_columns&&e.included_columns.length>0?(U(),W(V,{key:0},[zi(` (include `+O(e.included_columns.join(`, `))+`) `,1)],64)):q(``,!0)]),G(`td`,mu,[G(`div`,hu,[e.is_primary?(U(),W(`span`,gu,`pk`)):q(``,!0),e.is_unique?(U(),W(`span`,_u,`unique`)):q(``,!0),e.index_type?(U(),W(`span`,vu,O(e.index_type),1)):q(``,!0),e.filter?(U(),W(`span`,yu,`where `+O(e.filter),1)):q(``,!0)])])]))),128))])])])])):q(``,!0),G(`section`,null,[G(`h3`,bu,O(e.translate(`docs.relationships`)),1),K(Jl,{relationships:e.relationships,schema:e.table.schema,table:e.table.name,translate:e.translate,onSelect:n[4]||=e=>r(`select`,e)},null,8,[`relationships`,`schema`,`table`,`translate`])]),e.table.viewDefinition?(U(),W(`section`,xu,[G(`h3`,Su,O(e.translate(`docs.definitionHeader`)),1),G(`pre`,Cu,O(e.table.viewDefinition),1)])):q(``,!0)]))}});function Tu(e,t){switch(e.kind){case`tableSkipped`:return{severity:`warning`,title:t(`docs.warnings.tableSkipped.title`),detail:t(`docs.warnings.tableSkipped.detail`,{table:e.table,reason:e.reason})};case`noForeignKeyMetadata`:return{severity:`info`,title:t(`docs.warnings.noForeignKeyMetadata.title`),detail:t(`docs.warnings.noForeignKeyMetadata.detail`,{engine:e.engine})};case`commentsUnsupported`:return{severity:`info`,title:t(`docs.warnings.commentsUnsupported.title`),detail:t(`docs.warnings.commentsUnsupported.detail`,{engine:e.engine})};case`orphanedNotes`:return{severity:`warning`,title:t(`docs.warnings.orphanedNotes.title`),detail:t(`docs.warnings.orphanedNotes.detail`,{count:e.count})};case`dbmlOmitted`:return{severity:`info`,title:t(`docs.warnings.dbmlOmitted.title`),detail:t(`docs.warnings.dbmlOmitted.detail`,{item:e.item,table:e.table,reason:e.reason})}}}var Eu={key:0,class:`flex flex-col gap-2`},Du={class:`font-medium`},Ou={class:`mt-0.5 leading-relaxed`},ku=L({__name:`WarningBanner`,props:{warnings:{},translate:{type:Function}},setup(e){let t=e,n=Y(()=>t.warnings.map((e,n)=>({key:`${e.kind}-${n}`,...Tu(e,t.translate)})));return(e,t)=>n.value.length>0?(U(),W(`div`,Eu,[(U(!0),W(V,null,R(n.value,e=>(U(),W(`div`,{key:e.key,class:D([`rounded-md border px-3 py-2 text-xs`,e.severity===`warning`?`border-amber-300 bg-amber-50 text-amber-900 dark:border-amber-900/40 dark:bg-amber-950/30 dark:text-amber-200`:`border-border bg-muted/30 text-muted-foreground`])},[G(`div`,Du,O(e.title),1),G(`div`,Ou,O(e.detail),1)],2))),128))])):q(``,!0)}}),Au={class:`flex flex-col gap-6`},ju={class:`flex items-baseline gap-2`},Mu={class:`text-sm font-semibold text-foreground`},Nu={class:`text-xs text-muted-foreground`},Pu=[`innerHTML`],Fu={class:`grid gap-1 sm:grid-cols-2 lg:grid-cols-3`},Iu=[`onClick`],Lu={class:`font-mono text-xs font-medium text-foreground`},Ru={key:0,class:`text-[10px] uppercase text-muted-foreground`},zu=[`innerHTML`],Bu=L({__name:`WikiIndex`,props:{sections:{},translate:{type:Function}},emits:[`select`],setup(e,{emit:t}){let n=t;return(t,r)=>(U(),W(`div`,Au,[(U(!0),W(V,null,R(e.sections,t=>(U(),W(`section`,{key:t.key,class:`flex flex-col gap-2`},[G(`div`,{class:D([`flex flex-col gap-1 border-l-2 pl-3`,{"docs-group":t.hue!==null}]),style:E([{"border-color":`var(--group-c, var(--border))`},F(Oo)(t.hue)])},[G(`div`,ju,[G(`h2`,Mu,O(t.label||e.translate(t.fallbackKey)),1),G(`span`,Nu,O(t.tables.length)+` tables`,1)]),t.note?(U(),W(`div`,{key:0,class:`text-xs text-muted-foreground`,innerHTML:F(xc)(t.note)},null,8,Pu)):q(``,!0)],6),G(`ul`,Fu,[(U(!0),W(V,null,R(t.tables,e=>(U(),W(`li`,{key:F(X)(e),class:`flex flex-col gap-0.5 rounded border border-border bg-background px-2 py-1.5 transition-colors hover:bg-muted/40`},[G(`button`,{type:`button`,class:`flex w-full items-baseline gap-1.5 text-left`,onClick:t=>n(`select`,F(X)(e))},[G(`span`,Lu,O(e.name),1),e.kind===`TABLE`?q(``,!0):(U(),W(`span`,Ru,O(e.kind.toLowerCase().replace(/_/g,` `)),1))],8,Iu),e.note?(U(),W(`div`,{key:0,class:`line-clamp-2 text-[11px] text-muted-foreground`,innerHTML:F(xc)(e.note)},null,8,zu)):q(``,!0)]))),128))])]))),128))]))}}),Vu={class:`flex h-full min-h-0 bg-background text-foreground`},Hu={class:`flex h-full min-h-0 w-64 shrink-0 flex-col`},Uu={class:`flex min-w-0 flex-1 flex-col gap-4 overflow-y-auto p-4`},Wu={class:`flex flex-wrap items-start justify-between gap-3`},Gu={class:`flex flex-col gap-1`},Ku={class:`text-base font-semibold`},qu={class:`text-xs text-muted-foreground`},Ju={key:0,class:`flex flex-col gap-4`},Yu={key:0,class:`flex flex-col gap-2`},Xu={class:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`},Zu=L({__name:`DocsApp`,props:{snapshot:{},annotations:{},readonly:{type:Boolean},translate:{},route:{},diagram:{default:`external`}},emits:[`edit`,`update:route`],setup(e,{emit:t}){let n=e,r=t,i=Y(()=>n.readonly??!1),a=Y(()=>n.annotations.groups??[]),o=P(n.snapshot.groups.length>0?`group`:`schema`),s=P(null),c=P(null),l=P(!1),u=Y(()=>n.route?n.route:l.value?{kind:`diagram`}:c.value===null?s.value===null?{kind:`index`}:{kind:`table`,key:s.value}:{kind:`enum`,name:c.value}),d=Y(()=>u.value.kind===`table`?u.value.key:null),f=Y(()=>u.value.kind===`enum`?u.value.name:null),p=Y(()=>o.value===`schema`?Ro(n.snapshot):zo(n.snapshot)),m=Y(()=>n.snapshot.tables.find(e=>X(e)===d.value)??null),h=Y(()=>f.value===null?null:n.snapshot.enums.find(e=>e.name===f.value)??null),g=Y(()=>u.value.kind===`diagram`?`diagram`:h.value===null?m.value===null?`index`:`table`:`enum`),_=Y(()=>{let e=m.value?.groupId;return e?n.snapshot.groups.find(t=>t.id===e)??null:null});function v(e){n.snapshot.tables.some(t=>X(t)===e)&&(c.value=null,l.value=!1,s.value=e,r(`update:route`,{kind:`table`,key:e}))}function y(e){n.snapshot.enums.some(t=>t.name===e)&&(s.value=null,l.value=!1,c.value=e,r(`update:route`,{kind:`enum`,name:e}))}function b(){s.value=null,c.value=null,l.value=!0,r(`update:route`,{kind:`diagram`})}function x(){s.value=null,c.value=null,l.value=!1,r(`update:route`,{kind:`index`})}function ee(e){let t={id:crypto.randomUUID(),name:n.translate(`docs.newGroup`),hue:a.value.length*47%360};r(`edit`,{kind:`upsertGroup`,group:t}),r(`edit`,{kind:`tableGroup`,tableKey:e,groupId:t.id})}return(t,n)=>(U(),W(`div`,Vu,[G(`div`,Hu,[K(Io,{class:`min-h-0 flex-1`,sections:p.value,mode:o.value,"active-key":d.value,translate:e.translate,"onUpdate:mode":n[0]||=e=>o.value=e,onSelect:v,onHome:n[1]||=e=>x()},null,8,[`sections`,`mode`,`active-key`,`translate`]),e.diagram===`inline`?(U(),W(`button`,{key:0,type:`button`,class:D([`shrink-0 border-t border-r border-border bg-background px-3 py-2 text-left text-xs font-medium transition-colors`,g.value===`diagram`?`bg-muted text-foreground`:`text-muted-foreground hover:bg-muted/40`]),onClick:n[2]||=e=>b()},O(e.translate(`docs.diagram`)),3)):q(``,!0)]),G(`main`,Uu,[G(`header`,Wu,[G(`div`,Gu,[G(`h1`,Ku,O(e.snapshot.project.name),1),G(`p`,qu,[zi(O(e.snapshot.project.databaseType),1),e.snapshot.project.database?(U(),W(V,{key:0},[zi(` · `+O(e.snapshot.project.database),1)],64)):q(``,!0),zi(` · `+O(e.snapshot.tables.length)+` tables · generated `+O(e.snapshot.project.generatedAt),1)])]),K(Do,{snapshot:e.snapshot,translate:e.translate,onSelect:v,onSelectEnum:y},null,8,[`snapshot`,`translate`])]),K(ku,{warnings:e.snapshot.warnings,translate:e.translate},null,8,[`warnings`,`translate`]),g.value===`index`?(U(),W(`div`,Ju,[K(wc,{"model-value":e.snapshot.project.note??``,readonly:i.value,translate:e.translate,"onUpdate:modelValue":n[3]||=e=>r(`edit`,{kind:`projectNote`,note:e})},null,8,[`model-value`,`readonly`,`translate`]),K(Bu,{sections:p.value,translate:e.translate,onSelect:v},null,8,[`sections`,`translate`]),!i.value&&a.value.length>0?(U(),W(`section`,Yu,[G(`h2`,Xu,O(e.translate(`docs.groups`)),1),(U(!0),W(V,null,R(a.value,t=>(U(),ji(Xc,{key:t.id,group:t,translate:e.translate,"onUpdate:group":n[4]||=e=>r(`edit`,{kind:`upsertGroup`,group:e}),onDelete:n[5]||=e=>r(`edit`,{kind:`removeGroup`,groupId:e})},null,8,[`group`,`translate`]))),128))])):q(``,!0)])):g.value===`table`&&m.value?(U(),ji(wu,{key:1,table:m.value,relationships:e.snapshot.relationships,group:_.value,"annotation-groups":a.value,readonly:i.value,translate:e.translate,onSelect:v,onEdit:n[6]||=e=>r(`edit`,e),onCreateGroup:ee},null,8,[`table`,`relationships`,`group`,`annotation-groups`,`readonly`,`translate`])):h.value?(U(),ji(Ic,{key:2,"enum-type":h.value,snapshot:e.snapshot,translate:e.translate,onSelect:v},null,8,[`enum-type`,`snapshot`,`translate`])):g.value===`diagram`?(U(),ji(ll,{key:3,snapshot:e.snapshot,onSelect:v},null,8,[`snapshot`])):q(``,!0)])]))}}),Qu={kind:`index`};function $u(e,t,n){if(!e.startsWith(`#`))return Qu;let[r,...i]=e.slice(1).replace(/^\//,``).split(`/`),a=i.join(`/`);if(r===`diagram`&&a===``)return n?{kind:`diagram`}:Qu;if(a===``)return Qu;let o;try{o=decodeURIComponent(a)}catch{return Qu}return r===`table`?t.tables.some(e=>X(e)===o)?{kind:`table`,key:o}:Qu:r===`enum`&&(t.enums??[]).some(e=>e.name===o)?{kind:`enum`,name:o}:Qu}function ed(e){switch(e.kind){case`table`:return`#/table/${encodeURIComponent(e.key)}`;case`enum`:return`#/enum/${encodeURIComponent(e.name)}`;case`diagram`:return`#/diagram`;default:return`#/`}}var td=[{value:`en`,flag:`🇺🇸`,label:`English`},{value:`es`,flag:`🇪🇸`,label:`Español`},{value:`it`,flag:`🇮🇹`,label:`Italiano`},{value:`ja`,flag:`🇯🇵`,label:`日本語`},{value:`ko`,flag:`🇰🇷`,label:`한국어`},{value:`pt-BR`,flag:`🇧🇷`,label:`Português`},{value:`tr`,flag:`🇹🇷`,label:`Türkçe`},{value:`zh-CN`,flag:`🇨🇳`,label:`简体中文`},{value:`zh-TW`,flag:`繁`,label:`繁體中文`}],nd={en:{title:`Documentation`,groupBySchema:`Schemas`,groupByTableGroup:`Table Groups`,noGroup:`(no group)`,noSchema:`(no schema)`,search:`Search tables, columns, groups…`,columns:`Columns`,indexes:`Indexes`,references:`References`,referencedBy:`Referenced by`,localNote:`LOCAL`,shadowedComment:`Database comment: {comment}`,addNote:`Add a note`,editNote:`Edit note`,newGroup:`New group…`,groupName:`Group name`,groupColour:`Colour`,deleteGroup:`Delete group`,enumValues:`Values`,usedBy:`Used by`,openDiagram:`Open schema diagram`,saving:`Saving…`,saved:`Saved`,saveFailed:`Could not save notes: {error}`,overview:`Overview`,groupBy:`Group by`,searchLabel:`Search`,groups:`Groups`,relationships:`Relationships`,columnHeader:`Column`,typeHeader:`Type`,settingsHeader:`Settings`,noteHeader:`Note`,nameHeader:`Name`,definitionHeader:`Definition`,noOutgoingRelationships:`This table references no other table.`,noIncomingRelationships:`No table references this one.`,diagram:`Diagram`,language:`Language`,theme:`Theme`,themeLight:`Light`,themeDark:`Dark`,exportHtml:`Export HTML…`,exporting:`Exporting…`,exportFailed:`Could not export: {error}`,warnings:{tableSkipped:{title:`A table could not be documented`,detail:`{table} was skipped: {reason}. It is missing from this documentation.`},noForeignKeyMetadata:{title:`No relationships available`,detail:`{engine} does not report foreign key metadata, so no relationship edges could be derived. The diagram is complete for this engine.`},commentsUnsupported:{title:`Database comments unavailable`,detail:`{engine} does not support table or column comments, so every description here comes from this project's own notes.`},orphanedNotes:{title:`Some notes no longer match anything`,detail:`{count} note(s) refer to a table or column that no longer exists. Nothing was deleted — re-map or remove them in the notes file.`},dbmlOmitted:{title:`Not representable in DBML`,detail:`{item} on {table} is documented here but omitted from the exported DBML: {reason}.`}}},es:{title:`Documentación`,groupBySchema:`Esquemas`,groupByTableGroup:`Grupos de tablas`,noGroup:`(sin grupo)`,noSchema:`(sin esquema)`,search:`Buscar tablas, columnas, grupos…`,columns:`Columnas`,indexes:`Índices`,references:`Referencias`,referencedBy:`Referenciado por`,localNote:`LOCAL`,shadowedComment:`Comentario de la base de datos: {comment}`,addNote:`Agregar una nota`,editNote:`Editar nota`,newGroup:`Nuevo grupo…`,groupName:`Nombre del grupo`,groupColour:`Color`,deleteGroup:`Eliminar grupo`,enumValues:`Valores`,usedBy:`Usado por`,openDiagram:`Abrir diagrama del esquema`,saving:`Guardando…`,saved:`Guardado`,saveFailed:`No se pudieron guardar las notas: {error}`,overview:`Información general`,groupBy:`Agrupar por`,searchLabel:`Buscar`,groups:`Grupos`,relationships:`Relaciones`,columnHeader:`Columna`,typeHeader:`Tipo`,settingsHeader:`Configuración`,noteHeader:`Nota`,nameHeader:`Nombre`,definitionHeader:`Definición`,noOutgoingRelationships:`Esta tabla no referencia ninguna otra tabla.`,noIncomingRelationships:`Ninguna tabla referencia esta.`,diagram:`Diagrama`,language:`Idioma`,theme:`Tema`,themeLight:`Claro`,themeDark:`Oscuro`,exportHtml:`Exportar HTML…`,exporting:`Exportando…`,exportFailed:`No se pudo exportar: {error}`,warnings:{tableSkipped:{title:`No se pudo documentar una tabla`,detail:`{table} fue omitida: {reason}. Falta en esta documentación.`},noForeignKeyMetadata:{title:`No hay relaciones disponibles`,detail:`{engine} no reporta metadatos de claves foráneas, por lo que no se pudieron derivar relaciones. El diagrama está completo para este motor.`},commentsUnsupported:{title:`Comentarios de base de datos no disponibles`,detail:`{engine} no admite comentarios en tablas o columnas, por lo que toda descripción aquí proviene de las notas de este proyecto.`},orphanedNotes:{title:`Algunas notas ya no coinciden con nada`,detail:`{count} nota(s) hacen referencia a una tabla o columna que ya no existe. No se eliminó nada — vuelva a asignarlas o elimínelas en el archivo de notas.`},dbmlOmitted:{title:`No representable en DBML`,detail:`{item} en {table} está documentado aquí pero se omitió del DBML exportado: {reason}.`}}},it:{title:`Documentazione`,groupBySchema:`Schemi`,groupByTableGroup:`Gruppi di tabelle`,noGroup:`(nessun gruppo)`,noSchema:`(nessuno schema)`,search:`Cerca tabelle, colonne, gruppi…`,columns:`Colonne`,indexes:`Indici`,references:`Riferimenti`,referencedBy:`Referenziato da`,localNote:`LOCALE`,shadowedComment:`Commento del database: {comment}`,addNote:`Aggiungi una nota`,editNote:`Modifica nota`,newGroup:`Nuovo gruppo…`,groupName:`Nome del gruppo`,groupColour:`Colore`,deleteGroup:`Elimina gruppo`,enumValues:`Valori`,usedBy:`Usato da`,openDiagram:`Apri diagramma dello schema`,saving:`Salvataggio…`,saved:`Salvato`,saveFailed:`Impossibile salvare le note: {error}`,overview:`Panoramica`,groupBy:`Raggruppa per`,searchLabel:`Cerca`,groups:`Gruppi`,relationships:`Relazioni`,columnHeader:`Colonna`,typeHeader:`Tipo`,settingsHeader:`Impostazioni`,noteHeader:`Nota`,nameHeader:`Nome`,definitionHeader:`Definizione`,noOutgoingRelationships:`Questa tabella non fa riferimento a nessun'altra tabella.`,noIncomingRelationships:`Nessuna tabella fa riferimento a questa.`,diagram:`Diagramma`,language:`Lingua`,theme:`Tema`,themeLight:`Chiaro`,themeDark:`Scuro`,exportHtml:`Esporta HTML…`,exporting:`Esportazione…`,exportFailed:`Impossibile esportare: {error}`,warnings:{tableSkipped:{title:`Impossibile documentare una tabella`,detail:`{table} è stata saltata: {reason}. Manca da questa documentazione.`},noForeignKeyMetadata:{title:`Nessuna relazione disponibile`,detail:`{engine} non riporta i metadati delle chiavi esterne, quindi non è stato possibile derivare alcuna relazione. Il diagramma è completo per questo motore.`},commentsUnsupported:{title:`Commenti del database non disponibili`,detail:`{engine} non supporta i commenti su tabelle o colonne, quindi ogni descrizione qui proviene dalle note di questo progetto.`},orphanedNotes:{title:`Alcune note non corrispondono più a nulla`,detail:`{count} nota/e fanno riferimento a una tabella o colonna che non esiste più. Nulla è stato eliminato — rimappa o rimuovi queste note nel file delle note.`},dbmlOmitted:{title:`Non rappresentabile in DBML`,detail:`{item} su {table} è documentato qui ma omesso dal DBML esportato: {reason}.`}}},ja:{title:`ドキュメント`,groupBySchema:`スキーマ`,groupByTableGroup:`テーブルグループ`,noGroup:`(グループなし)`,noSchema:`(スキーマなし)`,search:`テーブル、カラム、グループを検索…`,columns:`カラム`,indexes:`インデックス`,references:`参照`,referencedBy:`参照元`,localNote:`ローカル`,shadowedComment:`データベースのコメント: {comment}`,addNote:`メモを追加`,editNote:`メモを編集`,newGroup:`新しいグループ…`,groupName:`グループ名`,groupColour:`色`,deleteGroup:`グループを削除`,enumValues:`値`,usedBy:`使用元`,openDiagram:`スキーマ図を開く`,saving:`保存中…`,saved:`保存済み`,saveFailed:`メモを保存できませんでした: {error}`,overview:`概要`,groupBy:`グループ化`,searchLabel:`検索`,groups:`グループ`,relationships:`リレーションシップ`,columnHeader:`カラム`,typeHeader:`型`,settingsHeader:`設定`,noteHeader:`メモ`,nameHeader:`名前`,definitionHeader:`定義`,noOutgoingRelationships:`このテーブルは他のテーブルを参照していません。`,noIncomingRelationships:`このテーブルを参照しているテーブルはありません。`,diagram:`図`,language:`言語`,theme:`テーマ`,themeLight:`ライト`,themeDark:`ダーク`,exportHtml:`HTMLをエクスポート…`,exporting:`エクスポート中…`,exportFailed:`エクスポートできませんでした: {error}`,warnings:{tableSkipped:{title:`ドキュメント化できないテーブルがあります`,detail:`{table} はスキップされました: {reason}。このドキュメントには含まれていません。`},noForeignKeyMetadata:{title:`リレーションシップを表示できません`,detail:`{engine} は外部キーのメタデータを報告しないため、リレーションシップを導出できませんでした。この図はこのエンジンについては完全です。`},commentsUnsupported:{title:`データベースのコメントは利用できません`,detail:`{engine} はテーブルやカラムのコメントをサポートしていないため、ここでの説明はすべてこのプロジェクトのメモから提供されています。`},orphanedNotes:{title:`対象がなくなったメモがあります`,detail:`{count} 件のメモが、既に存在しないテーブルまたはカラムを参照しています。何も削除されていません。メモファイルで再割り当てまたは削除してください。`},dbmlOmitted:{title:`DBMLでは表現できません`,detail:`{table} の {item} はここに記載されていますが、エクスポートされたDBMLからは除外されています: {reason}。`}}},ko:{title:`문서`,groupBySchema:`스키마`,groupByTableGroup:`테이블 그룹`,noGroup:`(그룹 없음)`,noSchema:`(스키마 없음)`,search:`테이블, 컬럼, 그룹 검색…`,columns:`컬럼`,indexes:`인덱스`,references:`참조`,referencedBy:`참조된 위치`,localNote:`로컬`,shadowedComment:`데이터베이스 코멘트: {comment}`,addNote:`메모 추가`,editNote:`메모 편집`,newGroup:`새 그룹…`,groupName:`그룹 이름`,groupColour:`색상`,deleteGroup:`그룹 삭제`,enumValues:`값`,usedBy:`사용처`,openDiagram:`스키마 다이어그램 열기`,saving:`저장 중…`,saved:`저장됨`,saveFailed:`메모를 저장할 수 없습니다: {error}`,overview:`개요`,groupBy:`그룹화 기준`,searchLabel:`검색`,groups:`그룹`,relationships:`관계`,columnHeader:`컬럼`,typeHeader:`유형`,settingsHeader:`설정`,noteHeader:`메모`,nameHeader:`이름`,definitionHeader:`정의`,noOutgoingRelationships:`이 테이블은 다른 테이블을 참조하지 않습니다.`,noIncomingRelationships:`이 테이블을 참조하는 테이블이 없습니다.`,diagram:`다이어그램`,language:`언어`,theme:`테마`,themeLight:`라이트`,themeDark:`다크`,exportHtml:`HTML 내보내기…`,exporting:`내보내는 중…`,exportFailed:`내보낼 수 없습니다: {error}`,warnings:{tableSkipped:{title:`문서화할 수 없는 테이블이 있습니다`,detail:`{table} 을(를) 건너뛰었습니다: {reason}. 이 문서에서 누락되었습니다.`},noForeignKeyMetadata:{title:`표시할 관계가 없습니다`,detail:`{engine} 은(는) 외래 키 메타데이터를 보고하지 않으므로 관계를 도출할 수 없습니다. 이 엔진에 대해서는 다이어그램이 완전합니다.`},commentsUnsupported:{title:`데이터베이스 코멘트를 사용할 수 없습니다`,detail:`{engine} 은(는) 테이블 또는 컬럼 코멘트를 지원하지 않으므로 여기의 모든 설명은 이 프로젝트의 메모에서만 제공됩니다.`},orphanedNotes:{title:`더 이상 일치하는 대상이 없는 메모가 있습니다`,detail:`{count} 개의 메모가 더 이상 존재하지 않는 테이블 또는 컬럼을 참조하고 있습니다. 삭제된 항목은 없습니다 — 메모 파일에서 다시 매핑하거나 제거하세요.`},dbmlOmitted:{title:`DBML로 표현할 수 없습니다`,detail:`{table} 의 {item} 은(는) 여기에 문서화되어 있지만 내보낸 DBML에서는 제외되었습니다: {reason}.`}}},"pt-BR":{title:`Documentação`,groupBySchema:`Schemas`,groupByTableGroup:`Grupos de tabelas`,noGroup:`(sem grupo)`,noSchema:`(sem schema)`,search:`Buscar tabelas, colunas, grupos…`,columns:`Colunas`,indexes:`Índices`,references:`Referências`,referencedBy:`Referenciado por`,localNote:`LOCAL`,shadowedComment:`Comentário do banco de dados: {comment}`,addNote:`Adicionar uma nota`,editNote:`Editar nota`,newGroup:`Novo grupo…`,groupName:`Nome do grupo`,groupColour:`Cor`,deleteGroup:`Excluir grupo`,enumValues:`Valores`,usedBy:`Usado por`,openDiagram:`Abrir diagrama do schema`,saving:`Salvando…`,saved:`Salvo`,saveFailed:`Não foi possível salvar as notas: {error}`,overview:`Visão geral`,groupBy:`Agrupar por`,searchLabel:`Buscar`,groups:`Grupos`,relationships:`Relacionamentos`,columnHeader:`Coluna`,typeHeader:`Tipo`,settingsHeader:`Configurações`,noteHeader:`Nota`,nameHeader:`Nome`,definitionHeader:`Definição`,noOutgoingRelationships:`Esta tabela não referencia nenhuma outra tabela.`,noIncomingRelationships:`Nenhuma tabela referencia esta.`,diagram:`Diagrama`,language:`Idioma`,theme:`Tema`,themeLight:`Claro`,themeDark:`Escuro`,exportHtml:`Exportar HTML…`,exporting:`Exportando…`,exportFailed:`Não foi possível exportar: {error}`,warnings:{tableSkipped:{title:`Uma tabela não pôde ser documentada`,detail:`{table} foi ignorada: {reason}. Ela está faltando nesta documentação.`},noForeignKeyMetadata:{title:`Nenhum relacionamento disponível`,detail:`{engine} não reporta metadados de foreign key, então nenhum relacionamento pôde ser derivado. O diagrama está completo para este engine.`},commentsUnsupported:{title:`Comentários do banco de dados indisponíveis`,detail:`{engine} não suporta comentários em tabelas ou colunas, então toda descrição aqui vem apenas das notas deste projeto.`},orphanedNotes:{title:`Algumas notas não correspondem mais a nada`,detail:`{count} nota(s) referenciam uma tabela ou coluna que não existe mais. Nada foi excluído — remapeie ou remova essas notas no arquivo de notas.`},dbmlOmitted:{title:`Não representável em DBML`,detail:`{item} em {table} está documentado aqui mas foi omitido do DBML exportado: {reason}.`}}},"zh-CN":{title:`文档`,groupBySchema:`Schema`,groupByTableGroup:`表分组`,noGroup:`(无分组)`,noSchema:`(无 Schema)`,search:`搜索表、列、分组…`,columns:`列`,indexes:`索引`,references:`引用`,referencedBy:`被引用`,localNote:`本地`,shadowedComment:`数据库注释: {comment}`,addNote:`添加备注`,editNote:`编辑备注`,newGroup:`新建分组…`,groupName:`分组名称`,groupColour:`颜色`,deleteGroup:`删除分组`,enumValues:`值`,usedBy:`被使用于`,openDiagram:`打开 Schema 图`,saving:`保存中…`,saved:`已保存`,saveFailed:`无法保存备注: {error}`,overview:`概览`,groupBy:`分组方式`,searchLabel:`搜索`,groups:`分组`,relationships:`关系`,columnHeader:`列`,typeHeader:`类型`,settingsHeader:`设置`,noteHeader:`备注`,nameHeader:`名称`,definitionHeader:`定义`,noOutgoingRelationships:`此表未引用任何其他表。`,noIncomingRelationships:`没有表引用此表。`,diagram:`图`,language:`语言`,theme:`主题`,themeLight:`浅色`,themeDark:`深色`,exportHtml:`导出 HTML…`,exporting:`导出中…`,exportFailed:`无法导出: {error}`,warnings:{tableSkipped:{title:`有一张表无法生成文档`,detail:`{table} 被跳过: {reason}。此文档中缺少该表。`},noForeignKeyMetadata:{title:`没有可用的关系`,detail:`{engine} 不报告外键元数据,因此无法推导出任何关系。此图对该数据库引擎而言已经完整。`},commentsUnsupported:{title:`数据库注释不可用`,detail:`{engine} 不支持表或列注释,因此这里的所有描述均仅来自本项目的备注。`},orphanedNotes:{title:`部分备注已不再对应任何内容`,detail:`{count} 条备注引用的表或列已不存在。没有任何内容被删除 — 请在备注文件中重新映射或移除它们。`},dbmlOmitted:{title:`无法在 DBML 中表示`,detail:`{table} 上的 {item} 已在此处记录,但已从导出的 DBML 中省略: {reason}。`}}},"zh-TW":{title:`文件`,groupBySchema:`Schema`,groupByTableGroup:`資料表分組`,noGroup:`(無分組)`,noSchema:`(無 Schema)`,search:`搜尋資料表、欄位、分組…`,columns:`欄位`,indexes:`索引`,references:`參照`,referencedBy:`被參照`,localNote:`本機`,shadowedComment:`資料庫註解: {comment}`,addNote:`新增備註`,editNote:`編輯備註`,newGroup:`新增分組…`,groupName:`分組名稱`,groupColour:`顏色`,deleteGroup:`刪除分組`,enumValues:`值`,usedBy:`被使用於`,openDiagram:`開啟 Schema 圖`,saving:`儲存中…`,saved:`已儲存`,saveFailed:`無法儲存備註: {error}`,overview:`總覽`,groupBy:`分組方式`,searchLabel:`搜尋`,groups:`分組`,relationships:`關聯`,columnHeader:`欄位`,typeHeader:`類型`,settingsHeader:`設定`,noteHeader:`備註`,nameHeader:`名稱`,definitionHeader:`定義`,noOutgoingRelationships:`此資料表未參照任何其他資料表。`,noIncomingRelationships:`沒有資料表參照此資料表。`,diagram:`圖表`,language:`語言`,theme:`主題`,themeLight:`淺色`,themeDark:`深色`,exportHtml:`匯出 HTML…`,exporting:`匯出中…`,exportFailed:`無法匯出: {error}`,warnings:{tableSkipped:{title:`有一張資料表無法產生文件`,detail:`{table} 被略過: {reason}。此文件中缺少該資料表。`},noForeignKeyMetadata:{title:`沒有可用的關聯`,detail:`{engine} 未回報外鍵中繼資料,因此無法推導出任何關聯。此圖對該資料庫引擎而言已經完整。`},commentsUnsupported:{title:`資料庫註解無法使用`,detail:`{engine} 不支援資料表或欄位註解,因此這裡的所有說明均僅來自本專案的備註。`},orphanedNotes:{title:`部分備註已不再對應任何內容`,detail:`{count} 筆備註參照的資料表或欄位已不存在。沒有任何內容被刪除 — 請在備註檔案中重新對應或移除它們。`},dbmlOmitted:{title:`無法在 DBML 中表示`,detail:`{table} 上的 {item} 已在此處記錄,但已從匯出的 DBML 中省略: {reason}。`}}}};function rd(e,t){let n=t.split(`.`).reduce((e,t)=>e&&typeof e==`object`?e[t]:void 0,e);return typeof n==`string`?n:null}function id(e){let t=nd[e]??nd.en;return(e,n)=>{let r=e.startsWith(`docs.`)?e.slice(5):e,i=rd(t,r)??rd(nd.en,r);return i===null?e:n?i.replace(/\{(\w+)\}/g,(e,t)=>t in n?String(n[t]):e):i}}var ad={class:`flex h-full min-h-0 flex-col bg-background text-foreground`},od={class:`flex shrink-0 flex-wrap items-center justify-end gap-4 border-b border-border px-4 py-2`},sd={class:`flex items-center gap-2 text-xs text-muted-foreground`},cd={value:`light`},ld={value:`dark`},ud={class:`flex items-center gap-2 text-xs text-muted-foreground`},dd=[`value`],fd=L({__name:`ExportApp`,props:{payload:{}},setup(e){let t=e,n=P(t.payload.lang in nd?t.payload.lang:`en`),r=Y(()=>id(n.value)),i=td.filter(e=>e.value in nd),a=P(typeof window<`u`&&window.matchMedia?.(`(prefers-color-scheme: dark)`).matches?`dark`:`light`);Pn(a,e=>{let t=document.documentElement;t.classList.toggle(`dark`,e===`dark`),t.style.colorScheme=e},{immediate:!0}),Pn(n,e=>{document.documentElement.lang=e},{immediate:!0});let o=P($u(location.hash,t.payload.snapshot,!0));function s(){o.value=$u(location.hash,t.payload.snapshot,!0)}function c(e){o.value=e;let t=ed(e);location.hash!==t&&(location.hash=t)}return nr(()=>window.addEventListener(`hashchange`,s)),ar(()=>window.removeEventListener(`hashchange`,s)),(t,s)=>(U(),W(`div`,ad,[G(`div`,od,[G(`label`,sd,[zi(O(r.value(`docs.theme`))+` `,1),On(G(`select`,{"onUpdate:modelValue":s[0]||=e=>a.value=e,class:`rounded border border-border bg-background px-2 py-1 text-xs text-foreground`},[G(`option`,cd,O(r.value(`docs.themeLight`)),1),G(`option`,ld,O(r.value(`docs.themeDark`)),1)],512),[[no,a.value]])]),G(`label`,ud,[zi(O(r.value(`docs.language`))+` `,1),On(G(`select`,{"onUpdate:modelValue":s[1]||=e=>n.value=e,class:`rounded border border-border bg-background px-2 py-1 text-xs text-foreground`},[(U(!0),W(V,null,R(F(i),e=>(U(),W(`option`,{key:e.value,value:e.value},O(e.label),9,dd))),128))],512),[[no,n.value]])])]),K(Zu,{class:`min-h-0 flex-1`,snapshot:e.payload.snapshot,annotations:e.payload.annotations,readonly:!0,translate:r.value,route:o.value,diagram:`inline`,"onUpdate:route":c},null,8,[`snapshot`,`annotations`,`translate`,`route`])]))}});function pd(){let e=document.querySelector(`script[type='application/dbx-snapshot']`);if(e===null)throw Error(`no