RSS Git Download  Clone
Raw Blame History 79kB 1093 lines
const strings = {
  error: {
    server_error: "កំហុសម៉ាស៊ីនមេ សូមព្យាយាមម្តងទៀត",
    aiPromptTooLong: "សំណើ AI វែងពេក (អតិបរមា 4096 តួអក្សរ)",
  },
  title: {
    donate: "បរិច្ចាគ",
    donateTitle: "គាំទ្រ P3X Redis UI",
    donateDescription: "P3X Redis UI គឺជាគម្រោងឥតគិតថ្លៃ និងកូដបើកចំហ។ ការចំណាយលើការថែទាំកម្មវិធី មុខងារ AI រូបភាព Docker ម៉ាស៊ីនមេ និងហេដ្ឋារចនាសម្ព័ន្ធ មកពីហោប៉ៅផ្ទាល់ខ្លួនរបស់អ្នកអភិវឌ្ឍន៍។ ប្រសិនបើអ្នកយល់ថាឧបករណ៍នេះមានប្រយោជន៍ សូមពិចារណាគាំទ្រការអភិវឌ្ឍន៍បន្តរបស់វាដោយការបរិច្ចាគ។ រាល់ការរួមចំណែកជួយរក្សាគម្រោងនេះឱ្យមានជីវិត និងរីកចម្រើន។ សូមអរគុណ!",
    jsonRecursive: "ពង្រីកស្លឹកទាំងអស់។",
    name: "P3X Redis UI",
    nameDonated: "P3X Redis UI+",
    main: "អ្នកអាចជ្រើសរើសការភ្ជាប់ Redis ដើម្បីភ្ជាប់ពីម៉ឺនុយខាងក្រោមខាងឆ្វេង។",
    statistics: "ស្ថិតិ",
    error: "កំហុស",
    connectingRedis: "កំពុងភ្ជាប់ទៅ Redis...",
    socketioConnectError: "កំហុស Socket.IO",
    db: "DB",
    server: "ម៉ាស៊ីនមេ",
    clients: "អតិថិជន",
    memory: "ការចងចាំ",
    persistence: "ការតស៊ូ",
    stats: "ស្ថិតិ",
    replication: "ការចម្លង",
    cpu: "CPU",
    cluster: "Cluster",
    modules: "modules",
    errorstats: "errorstats",
    commandstats: "commandstats",
    latencystats: "latencystats",
    keysizes: "keysizes",
    threads: "threads"
  },
  confirm: {
    dropIndex: "តើអ្នកពិតជាចង់លុបសន្ទស្សន៍នេះមែនទេ?",
    uploadBuffer: "តើអ្នកប្រាកដក្នុងការបង្ហោះទិន្នន័យគោលពីរនេះទេ?",
    uploadBufferDone: "ទិន្នន័យគោលពីរត្រូវបានផ្ទុកឡើង",
    uploadBufferDoneAndSave: "ទិន្នន័យគោលពីរត្រូវបានផ្ទុកឡើង និងរក្សាទុកនៅលើម៉ាស៊ីនមេ",
    title: "បញ្ជាក់",
    alert: "ដាស់តឿន",
    info: "ព័ត៌មាន",
    deleteListItem: "តើអ្នកប្រាកដក្នុងការលុបធាតុក្នុងបញ្ជីនេះទេ?",
    deleteHashKey: "តើ​អ្នក​ប្រាកដ​ក្នុង​ចិត្ត​លុប​ធាតុ​សោ​សញ្ញា​នេះ​ឬ?",
    deleteStreamTimestamp: "តើ​អ្នក​ប្រាកដ​ក្នុង​ចិត្ត​លុប​ត្រា​ពេល​វេលា​នៃ​ការ​ផ្សាយ​នេះ?",
    deleteSetMember: "តើអ្នកប្រាកដក្នុងការលុបសមាជិកឈុតនេះទេ?",
    deleteZSetMember: "តើអ្នកប្រាកដក្នុងការលុបសមាជិកដែលបានតម្រៀបនេះទេ?",
    deleteConnection: "បញ្ជាក់",
    deleteConnectionText: "តើអ្នកប្រាកដក្នុងការលុបការតភ្ជាប់ Redis នេះទេ?",
    delete: "\u179b\u17bb\u1794?",
    deleteNode: "តើអ្នកប្រាកដក្នុងការលុបថ្នាំង Redis នេះទេ?",
    deleteAllKeys: opts => {
      return `លុបមែកធាងនេះ និងសោទាំងអស់របស់វា (${opts.key})?`;
    },
    deleteSearchKeys: opts => {
      return `តើអ្នកប្រាកដថាចង់លុបសោទាំងអស់ដែលផ្គូផ្គងនឹង "${opts.pattern}" ទេ? បានរកឃើញ ${opts.count} សោ។`;
    },
    socketioConnectError: "Socket.IO មិនអាចភ្ជាប់ទៅម៉ាស៊ីនមេបានទេ អ្នកអាចផ្ទុកឡើងវិញ ហើយព្យាយាមដោះស្រាយកំហុសក្នុងការតភ្ជាប់ដោយខ្លួនឯង អតិថិជនមិនដឹងពីរបៀបដោះស្រាយវាដោយខ្លួនឯងទេ។",
    socketioAuthRequired: "ការអនុញ្ញាត Socket.IO ត្រូវបានទាមទារ។ សូមផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវជាមួយ HTTP Basic Auth (ឈ្មោះអ្នកប្រើប្រាស់/ពាក្យសម្ងាត់) ហើយផ្ទុកឡើងវិញ។",
    invalidCredentials: "ឈ្មោះអ្នកប្រើប្រាស់ ឬពាក្យសម្ងាត់មិនត្រឹមត្រូវ។",
    deleteKey: "តើអ្នកប្រាកដក្នុងការលុបសោនេះទេ?",
    rename: {
      title: "តើអ្នកប្រាកដក្នុងការប្តូរឈ្មោះសោនេះទេ?",
      textContent: "សកម្មភាពនេះប្តូរឈ្មោះសោជាអចិន្ត្រៃយ៍។",
      placeholder: "គ្រាប់ចុច Redis (ទាមទារ)"
    },
    ttl: {
      title: "តើអ្នកប្រាកដថាចង់ផ្លាស់ប្តូរ TTL របស់សោនេះទេ?",
      textContent: "ការផ្លាស់ប្តូរ TTL ធ្វើបច្ចុប្បន្នភាពពេលវេលារបស់សោនេះដើម្បីរស់នៅ។ ទុក​ទទេ​ដើម្បី​រក្សា​សោ​នេះ​ជា​រៀង​រហូត។",
      placeholder: "Redis របស់ TTL (ចំនួនគត់ ឬទទេ)",
      placeholderPlaceholder: "ទទេមានន័យថាវាបន្តជារៀងរហូត; បើមិនដូច្នេះទេ បញ្ចូលចំនួនគត់។",
      convertTextToTime: "បំលែងអត្ថបទទៅជាពេលវេលា",
      convertTextToTimePlaceholder: "ឧ. 1d នឹងមាន 86400"
    }
  },
  language: {
    ar: "العربية / Arabic",
    az: "Azərbaycanca / Azerbaijani",
    be: "Беларуская / Belarusian",
    bg: "Български / Bulgarian",
    bn: "বাংলা / Bengali",
    cs: "Čeština / Czech",
    da: "Dansk / Danish",
    de: "Deutsch / German",
    el: "Ελληνικά / Greek",
    en: "English",
    es: "Español / Spanish",
    et: "Eesti / Estonian",
    fi: "Suomi / Finnish",
    fil: "Filipino / Filipino",
    fr: "Français / French",
    he: "עברית / Hebrew",
    hr: "Hrvatski / Croatian",
    hu: "Magyar / Hungarian",
    hy: "Հայերեն / Armenian",
    id: "Bahasa Indonesia / Indonesian",
    it: "Italiano / Italian",
    ja: "日本語 / Japanese",
    ka: "ქართული / Georgian",
    kk: "Қазақша / Kazakh",
    km: "ខ្មែរ / Khmer",
    ko: "한국어 / Korean",
    ky: "Кыргызча / Kyrgyz",
    lt: "Lietuvių / Lithuanian",
    mk: "Македонски / Macedonian",
    ms: "Bahasa Melayu / Malay",
    ne: "नेपाली / Nepali",
    nl: "Nederlands / Dutch",
    no: "Norsk / Norwegian",
    pl: "Polski / Polish",
    "pt-BR": "Português (Brasil) / Portuguese (Brazil)",
    "pt-PT": "Português / Portuguese",
    ro: "Română / Romanian",
    ru: "Русский / Russian",
    sk: "Slovenčina / Slovak",
    sl: "Slovenščina / Slovenian",
    sr: "Српски / Serbian",
    sv: "Svenska / Swedish",
    tg: "Тоҷикӣ / Tajik",
    th: "ไทย / Thai",
    tr: "Türkçe / Turkish",
    uk: "Українська / Ukrainian",
    vi: "Tiếng Việt / Vietnamese",
    "zh-HK": "中文(香港) / Chinese (Hong Kong)",
    "zh-TW": "中文(台灣) / Chinese (Taiwan)",
    zn: "中文 / Chinese",
    bs: 'Bosanski / Bosnian',
    si: 'සිංහල / Sinhala',
    sw: 'Kiswahili / Swahili',
    ta: 'தமிழ் / Tamil'
  },
  intention: {
    copy: "ចម្លង",
    downloadBuffer: "ទាញយកប្រព័ន្ធគោលពីរ",
    setBuffer: "បង្ហោះប្រព័ន្ធគោលពីរ",
    exportKeys: "នាំចេញសោ",
    exportAllKeys: (opts) => `នាំចេញសោទាំង ${opts.count}`,
    exportSearchResults: (opts) => `នាំចេញ ${opts.count} លទ្ធផល`,
    deleteAllKeysMenu: (opts) => `លុបទាំងអស់ ${opts.count}`,
    importKeys: "នាំចូលសោ",
    deleteSearchKeys: (opts) => `លុប ${opts.count} សោដែលផ្គូផ្គង`,
    saveWithFormatJson: "រក្សាទុកជាមួយទម្រង់",
    formatJson: "ទម្រង់ Json",
    wrap: "រុំ",
    unwrap: "ដោះរុំ",
    downloadJson: "ទាញយក JSON",
    pubsubMonitor: "PubSub",
    pulse: "Pulse",
    profiler: "Profiler",
    memoryAnalysis: "ការវិភាគ",
    // When you translate the language, keep the Language in English
    // eg. Idioma / Language
    language: "ភាសា",
    ok: "យល់ព្រម",
    addKey: "បន្ថែមទៅគន្លឹះនេះ។",
    addKeyRoot: "បន្ថែមសោជា root",
    reloadKey: "ផ្ទុកគ្រាប់ចុចឡើងវិញ",
    reload: "ផ្ទុកឡើងវិញ",
    close: "បិទ",
    commands: "ពាក្យបញ្ជា",
    view: "មើល",
    statistics: "ស្ថិតិ",
    refresh: "ធ្វើឱ្យស្រស់",
    pause: "ផ្អាក",
    resume: "បន្ត",
    clear: "ច្បាស់",
    rename: "ប្តូរឈ្មោះ",
    main: "មូលដ្ឋានទិន្នន័យ",
    cancel: "បោះបង់",
    theme: "ប្រធានបទ",
    github: "GitHub",
    githubRepo: "ឃ្លាំង",
    githubRelease: "ការចេញផ្សាយ",
    githubChangelog: "កំណត់ហេតុផ្លាស់ប្តូរ",
    info: "ព័ត៌មាន",
    settings: "ការកំណត់",
    connect: "ភ្ជាប់",
    disconnect: "ផ្តាច់",
    logout: "ចាកចេញ",
    overview: "ទិដ្ឋភាពទូទៅ",
    console: "កុងសូល។",
    noConnections: "មិនមានការតភ្ជាប់ទេ បន្ថែមការតភ្ជាប់នៅក្នុងម៉ឺនុយការកំណត់។",
    noConnectionsInSettings: "មិនមានការតភ្ជាប់ទេ អ្នកអាចបន្ថែមការភ្ជាប់ថ្មីខាងលើ។",
    connectionAdd: "ការតភ្ជាប់ថ្មី។",
    addGroup: "បន្ថែមក្រុម",
    extend: "ពង្រីក",
    collapse: "ដួលរលំ",
    add: "បន្ថែម",
    edit: "កែសម្រួល",
    save: "រក្សាទុក",
    ttl: "កំណត់ TTL",
    fieldTtl: "TTL វាល",
    digest: "សង្ខេប",
    delete: "លុប",
    remove: "ដកចេញ",
    areYouSure: "តើអ្នកប្រាកដទេ?",
    sure: "ប្រាកដ",
    testConnection: "ការភ្ជាប់សាកល្បង",
    getKey: "កំពុងផ្ទុកគ្រាប់ចុច Redis និងទិន្នន័យដែលពាក់ព័ន្ធ...",
    jsonViewShow: "បង្ហាញ JSON",
    jsonViewEditor: "កែសម្រួល JSON",
    quickConsole: "កុងសូលរហ័ស",
    moveUp: "ផ្លាស់ទីឡើង",
    moveDown: "ផ្លាស់ទីចុះ",
  },
  diff: {
    reviewChanges: "\u1796\u17b7\u1793\u17b7\u178f\u17d2\u1799\u1798\u17be\u179b\u1780\u17b6\u179a\u1795\u17d2\u179b\u17b6\u179f\u17cb\u1794\u17d2\u178f\u17bc\u179a",
    inline: "\u1780\u17d2\u1793\u17bb\u1784\u1794\u1793\u17d2\u1791\u17b6\u178f\u17cb",
    sideBySide: "\u1787\u17b6\u1794\u17cb\u1782\u17d2\u1793\u17b6",
    additions: "\u1780\u17b6\u179a\u1794\u1793\u17d2\u1790\u17c2\u1798",
    deletions: "\u1780\u17b6\u179a\u179b\u17bb\u1794",
    unchangedLines: "\u1794\u1793\u17d2\u1791\u17b6\u178f\u17cb\u1798\u17b7\u1793\u1795\u17d2\u179b\u17b6\u179f\u17cb\u1794\u17d2\u178f\u17bc\u179a",
    noChanges: "\u1798\u17b7\u1793\u1794\u17b6\u1793\u179a\u1780\u1783\u17be\u1789\u1780\u17b6\u179a\u1795\u17d2\u179b\u17b6\u179f\u17cb\u1794\u17d2\u178f\u17bc\u179a",
    before: "\u1798\u17bb\u1793",
    after: "\u1794\u1793\u17d2\u1791\u17b6\u1794\u17cb\u1796\u17b8",
  },
  label: {
    id: {
      nodeId: "លេខសម្គាល់ថ្នាំង",
      id: "លេខសម្គាល់ការតភ្ជាប់",
      info: "ប្រសិនបើអ្នកមិនចង់ផ្លាស់ប្តូរលក្ខណសម្បត្តិរបស់៖ sshPassword, sshPrivateKey, ពាក្យសម្ងាត់, tlsCrt, tlsKey, tlsCa សូមបញ្ចូលលេខសម្គាល់នៃការតភ្ជាប់នៅក្នុង propertes ទាំងនោះ ដើម្បីរក្សាតម្លៃទ្រព្យសម្បត្តិនៅដដែល។ ប្រសិនបើអ្នកចង់បានតក្កវិជ្ជាដូចគ្នានៅក្នុងពាក្យសម្ងាត់ថ្នាំង បន្ទាប់មកបញ្ចូលលេខសម្គាល់ថ្នាំងក្នុងពាក្យសម្ងាត់ថ្នាំង។"
    },
    secureFeature: "ប្រសិនបើអ្នកឃើញតម្លៃដែលចាប់ផ្តើមដោយ P3X មើលទៅដូចគ្នា វាគឺជាមុខងារសុវត្ថិភាព។ ដើម្បីផ្លាស់ប្តូរការកំណត់ គ្រាន់តែជំនួសការកំណត់ទាំងនេះដោយទទេ ឬអ្វីផ្សេងទៀត ហើយពួកវានឹងត្រូវបានរក្សាទុក។ ប្រសិនបើអ្នកមិនផ្លាស់ប្តូរការកំណត់ទេ ការកំណត់នឹងត្រូវបានរក្សាទុកដូចដែលពួកវាស្ថិតនៅលើម៉ាស៊ីនមេ។",
    aiTranslating: "កំពុងបកប្រែ...",
    aiSettings: "ការកំណត់ AI",
    aiGroqApiKey: "សោ API Groq",
    aiGroqApiKeyInfo: "ជាជម្រើស។ សោ API Groq ផ្ទាល់ខ្លួនសម្រាប់ដំណើរការកាន់តែប្រសើរ។ ទទួលបានសោឥតគិតថ្លៃពី",
    aiGroqApiKeyPlaceholder: "gsk_...",
    aiGroqApiKeySaved: "សោ API AI ត្រូវបានរក្សាទុក",
    aiGroqApiKeyInvalid: "សោ Groq API មិនត្រឹមត្រូវ",
    aiGroqApiKeyNotSet: "មិនទាន់កំណត់ (លំនាំដើមម៉ាស៊ីនមេ)",
    aiEnabled: "បើក AI",
    aiEnabledYes: "បាទ",
    aiEnabledNo: "ទេ",
    aiRouteViaNetwork: "បញ្ជូនតាម network.corifeus.com",
    aiRoutingDirect: "សំណួរត្រូវបានផ្ញើដោយផ្ទាល់ទៅ Groq ដោយប្រើសោ API ផ្ទាល់ខ្លួនរបស់អ្នក ដោយមិនឆ្លងកាត់ network.corifeus.com។",
    aiRoutingNetwork: "សំណួរ AI ត្រូវបានបញ្ជូនតាម network.corifeus.com។ ប្រសិនបើអ្នកមានសោ Groq API ឥតគិតថ្លៃផ្ទាល់ខ្លួន អ្នកអាចបិទជម្រើសនេះ ដើម្បីបញ្ជូនដោយផ្ទាល់ទៅ Groq ដោយមិនឆ្លងកាត់ network.corifeus.com។",
    aiMaxTokens: "ចំនួន token AI អតិបរមា",
    aiMaxTokensInfo: "ចំនួន token អតិបរមាសម្រាប់ចម្លើយ AI។ តម្លៃខ្ពស់អាចឱ្យចម្លើយវែងជាងមុន ប៉ុន្តែអាចប្រើឥណទាន API ច្រើនជាងមុន។",
    consoleDrawer: {
      toggleTooltip: "បិទបើកកុងសូល",
      clearTooltip: "សម្អាតប្រវត្តិលទ្ធផល",
      closeTooltip: "បិទកុងសូល",
      aiSettingsTooltip: "ការកំណត់ AI",
      modeRedis: "REDIS",
      modeAi: "AI",
      connectionChipNoDb: opts => `${opts.name}`,
      connectionChipWithDb: opts => `${opts.name} · db ${opts.db}`,
      pageChip: opts => `ទំព័រ៖ ${opts.page}`,
      connectingTo: opts => `កំពុងតភ្ជាប់ទៅ ${opts.name}…`,
      connectedTo: opts => `បានតភ្ជាប់ទៅ ${opts.name} (Redis ${opts.version} ${opts.mode}, បានផ្ទុក ${opts.modules} ម៉ូឌុល)`,
      connectedToNoInfo: opts => `បានតភ្ជាប់ទៅ ${opts.name}`,
      disconnectedFrom: opts => `បានផ្តាច់ពី ${opts.name}`,
      notConnected: "មិនបានតភ្ជាប់។",
      limitedAiOnly: "មានតែ AI កម្រិតកំណត់ប៉ុណ្ណោះ។ សំណួរ-ចម្លើយទូទៅអំពី Redis នៅតែអាចប្រើបាន។",
      connectHint: "សម្រាប់ការវិនិច្ឆ័យផ្ទាល់ សូមវាយ៖ connect <name>",
      cheatsheetHint: "វាយ ai: help ដើម្បីមើលអ្វីដែលអ្នកអាចសួរ។",
      needsConnection: "មុខងារនេះត្រូវការការតភ្ជាប់សកម្ម។ សូមវាយ \"connect <name>\" ជាមុន។",
      aiNeedsConnectionReason: "AI ស្ថានភាពផ្ទាល់ (tool use) អាចប្រើបានតែពេលតភ្ជាប់ទៅ Redis ប៉ុណ្ណោះ។",
      verbNeedsConnection: opts => `"${opts.verb}" ត្រូវការការតភ្ជាប់សកម្ម។ សូមវាយ "connect <name>" ជាមុន។`,
      aiLimitedMode: "AI កំពុងស្ថិតនៅក្នុងរបៀបកំណត់។ រហូតដល់អ្នកតភ្ជាប់ មានតែសំណួរចំណេះដឹងទូទៅអំពី Redis ប៉ុណ្ណោះដែលអាចប្រើបាន។",
      welcomeDisconnected: "សូមស្វាគមន៍។ អ្នកមិនទាន់បានតភ្ជាប់ទៅ Redis instance ណាមួយនៅឡើយទេ។",
      readyIndicator: "រួចរាល់។",
    },
    cheatsheet: {
      title: "សន្លឹក AI — ខ្ញុំអាចសួរអ្វីបាន?",
      subtitle: "ចុចលើប្រយោគណាមួយ ដើម្បីបិទភ្ជាប់វាទៅក្នុងកុងសូល។ បន្ទាប់មកចុច Enter។",
      searchPlaceholder: "ច្រោះប្រយោគ…",
      openOfficialDocs: "ពាក្យបញ្ជា Redis ↗",
      openOfficialDocsTooltip: "បើកឯកសារយោងពាក្យបញ្ជា Redis ផ្លូវការនៅ redis.io",
      closeTooltip: "បិទ (Esc)",
      empty: "គ្មានប្រយោគណាដែលត្រូវនឹងតម្រងរបស់អ្នកទេ។",
      footerHint: "ព័ត៌មានជំនួយ៖ វាយ \"ai:\" រួចតាមដោយអ្វីមួយក្នុងភាសាណាក៏បាន — AI យល់ 54 ភាសា ហើយប្រើស្ថានភាព Redis បន្តផ្ទាល់នៅពេលត្រូវការ។",

      // Each group has: name (category label), match (search-filter alias), prompts (array of example strings)
      groups: {
        diagnostics: {
          name: "ការវិនិច្ឆ័យបន្តផ្ទាល់",
          description: "ស្នើឱ្យ AI ស៊ើបអង្កេតស្ថានភាពម៉ាស៊ីនមេបន្តផ្ទាល់ តាមរយៈឧបករណ៍អានតែមួយមុខដែលមានសុវត្ថិភាព។",
          prompts: [
            "ហេតុអ្វីអង្គចងចាំខ្ពស់?",
            "បង្ហាញខ្ញុំនូវសំណួរ 10 យឺតបំផុត",
            "ម៉ាស៊ីនអតិថិជនណាកំពុងភ្ជាប់?",
            "គោលការណ៍ maxmemory គឺជាអ្វី?",
            "មានការបណ្តេញ (eviction) ថ្មីៗណាមួយទេ?",
            "មានព្រឹត្តិការណ៍ latency ណាមួយទេ?",
            "ម៉ាស៊ីនមេដំណើរការមកហើយយូរប៉ុណ្ណា?",
            "អត្រាវាយប្រហារជោគជ័យ (hit rate) ប៉ុន្មាន?",
            "បង្ហាញការប្រើ CPU",
            "សង្ខេប keyspace",
            "ប្រភេទទិន្នន័យនីមួយៗប្រើអង្គចងចាំប៉ុន្មាន?",
            "មានអ្វីកំពុងរារាំងម៉ាស៊ីនមេឥឡូវនេះទេ?"
          ]
        },
        keys: {
          name: "កូនសោ",
          description: "ពិនិត្យ ស្វែងរក និងវិនិច្ឆ័យកូនសោ ដោយមិនចាំបាច់ចុចឆ្លងកាត់ដើមឈើ។",
          prompts: [
            "ស្វែងរកកូនសោទាំងអស់ដែលត្រូវនឹង user:*",
            "តើមានកូនសោប៉ុន្មានក្នុងមូលដ្ឋានទិន្នន័យនីមួយៗ?",
            "បង្ហាញ hash ធំបំផុតក្នុង db នេះ",
            "ស្វែងរកកូនសោដែលមាន TTL តិចជាង 60 វិនាទី",
            "កូនសោណាមួយគ្មាន TTL?",
            "តើប្រភេទរបស់កូនសោ session:abc គឺជាអ្វី?",
            "ប៉ាន់ប្រមាណអង្គចងចាំដែលប្រើដោយកូនសោបុព្វបទ \"session:\"",
            "បង្ហាញការអ៊ិនកូដវត្ថុរបស់កូនសោ user:42",
            "មានកូនសោណាជិតផុតកំណត់ទេ?",
            "namespace ណាមួយប្រើអង្គចងចាំច្រើនជាងគេ?"
          ]
        },
        dataTypes: {
          name: "ប្រភេទទិន្នន័យ",
          description: "កន្សោមភាសាធម្មជាតិសម្រាប់បង្កើត/អាន/ធ្វើបច្ចុប្បន្នភាពលើគ្រប់ប្រភេទ Redis។",
          prompts: [
            "បង្កើត hash ឈ្មោះ user:1 ដែលមានវាល name=Alice age=30",
            "បន្ថែម 3 ធាតុចូល list tasks",
            "បន្ថែមសមាជិកចូល set favourites",
            "បន្ថែមសមាជិកដែលមានពិន្ទុ ទៅ sorted set leaderboard",
            "បន្ថែមព្រឹត្តិការណ៍មួយទៅ stream events",
            "យកធាតុ 10 ចុងក្រោយពី stream events",
            "យកវាលទាំងអស់របស់ hash user:1",
            "យកសមាជិករបស់ set favourites",
            "យក 10 កំពូលតាមពិន្ទុពី leaderboard"
          ]
        },
        modules: {
          name: "ម៉ូឌុល",
          description: "សំណួរសម្រាប់ម៉ូឌុល Redis ដែលបានផ្ទុក (ប្រភេទខាងក្រោមលេចឡើងតែពេលម៉ូឌុលមាន)។",
          prompts: []
        },
        json: {
          name: "RedisJSON",
          description: "មានពេលម៉ូឌុល ReJSON ត្រូវបានផ្ទុក។",
          prompts: [
            "បង្កើតឯកសារ JSON នៅ user:42 ជាមួយ { name: \"Alice\", age: 30 }",
            "អានវាល name របស់ user:42",
            "ធ្វើបច្ចុប្បន្នភាព age របស់ user:42 ទៅ 31",
            "រាយកូនសោ JSON ទាំងអស់",
            "លុបវាលពីឯកសារ JSON",
            "យកវាលត្រួតគ្នាដោយប្រើ JSONPath"
          ]
        },
        search: {
          name: "RediSearch",
          description: "មានពេលម៉ូឌុល search ត្រូវបានផ្ទុក។",
          prompts: [
            "រាយសន្ទស្សន៍អត្ថបទពេញទាំងអស់",
            "ធ្វើការស្វែងរកអត្ថបទពេញសម្រាប់ \"redis\" លើសន្ទស្សន៍ idx:products",
            "បង្កើតសន្ទស្សន៍ដែលមានមូលដ្ឋាន hash ដែលមានវាល title (TEXT) និង price (NUMERIC)",
            "យកព័ត៌មានអំពីសន្ទស្សន៍ idx:products",
            "លុបសន្ទស្សន៍ idx:products",
            "ស្វែងរកឯកសារដែលតម្លៃនៅចន្លោះ 10 និង 50",
            "សរសេរការស្វែងរកចម្រុះរួមបញ្ចូលអត្ថបទ និងភាពស្រដៀងវ៉ិចទ័រ"
          ]
        },
        timeseries: {
          name: "RedisTimeSeries",
          description: "មានពេលម៉ូឌុល timeseries ត្រូវបានផ្ទុក។",
          prompts: [
            "រាយកូនសោ timeseries ទាំងអស់",
            "បន្ថែមចំណុចទិន្នន័យទៅ temp:room1",
            "យកជួរ temp:room1 ពីម្សិលមិញដល់ឥឡូវនេះ",
            "យកជួរច្រើនតាមស្លាក sensor=temp",
            "បង្កើត 100 ចំណុចទិន្នន័យរលកស៊ីនសម្រាប់ temp:room1",
            "បង្ហាញការរក្សា និងស្លាកសម្រាប់ temp:room1"
          ]
        },
        bloom: {
          name: "RedisBloom (Bloom / Cuckoo / Top-K / CMS / T-Digest)",
          description: "មានពេលម៉ូឌុល bf ត្រូវបានផ្ទុក។",
          prompts: [
            "ពិនិត្យថាតើធាតុ foo មាននៅក្នុង bloom filter spam:ips ឬអត់",
            "បន្ថែមធាតុទៅក្នុង bloom filter spam:ips",
            "បង្កើត top-K ឈ្មោះ popular ជាមួយ K=10",
            "សាកសួរ count-min sketch traffic សម្រាប់កូនសោ /home",
            "បន្ថែមតម្លៃទៅក្នុង t-digest ហើយយកភាគរយទី 95",
            "បង្ហាញព័ត៌មានសម្រាប់ bloom filter spam:ips"
          ]
        },
        vectorSet: {
          name: "VectorSet (Redis 8+)",
          description: "មានពេលរកឃើញ Redis 8+ (ប្រភេទ VECTORSET ដើម)។",
          prompts: [
            "បន្ថែមវ៉ិចទ័រទៅ embeddings",
            "ស្វែងរក 10 វ៉ិចទ័រស្រដៀងបំផុតទៅនឹងវ៉ិចទ័រសំណួរ",
            "បង្ហាញវិមាត្រ និងចំនួនរបស់ vectorset embeddings",
            "លុបធាតុពី vectorset embeddings",
            "ស្វែងរកតាមឈ្មោះធាតុជាមួយ VSIM"
          ]
        },
        redis8: {
          name: "មុខងារ Redis 8+",
          description: "បង្ហាញពេលរកឃើញ Redis 8+។",
          prompts: [
            "កំណត់ ttl វាល hash ជាមួយ HEXPIRE",
            "យក digest របស់តម្លៃ string",
            "ដំណើរការការស្វែងរកចម្រុះអត្ថបទពេញ + វ៉ិចទ័រ (FT.HYBRID)",
            "កំណត់កូនសោច្រើនជាមួយពេលផុតកំណត់រួមគ្នាដោយប្រើ MSETEX",
            "លុបធាតុ stream ជាមួយ consumer group (XDELEX)",
            "បង្ហាញ slot-stats cluster សម្រាប់ 10 slots កំពូល"
          ]
        },
        scripting: {
          name: "ការសរសេរស្គ្រីប",
          description: "បង្កើតស្គ្រីប Lua / EVAL ពីការពណ៌នាភាសាធម្មជាតិ។",
          prompts: [
            "សរសេរស្គ្រីបអាតូមិកដែលបង្កើន counter X តែនៅពេល Y > 5",
            "បង្កើត 100 កូនសោចៃដន្យជាមួយ Lua",
            "បំប្លែង pipeline shell នេះទៅជា EVAL តែមួយ៖ keys user:* | GET | grep inactive | DEL",
            "បម្លែងប្រតិបត្តិការ batch ទៅ Lua សម្រាប់សុវត្ថិភាព cluster",
            "ធ្វើបច្ចុប្បន្នភាពបែប check-and-set ក្នុង Lua តែមួយ",
            "ធ្វើ iterate លើ hash ហើយលុបវាលដែលត្រូវនឹងលំនាំ"
          ]
        },
        cluster: {
          name: "Cluster",
          description: "បង្ហាញតែក្នុងរបៀប cluster។",
          prompts: [
            "បង្ហាញព័ត៌មាន cluster",
            "រាយ nodes របស់ cluster",
            "បង្ហាញ 10 slots កំពូលតាមចំនួនកូនសោ",
            "បង្ហាញ 10 slots កំពូលតាមអង្គចងចាំ",
            "master ណាមួយគ្រប់គ្រង slot 5000?"
          ]
        },
        acl: {
          name: "ACL (Redis 6+)",
          description: "ពិនិត្យអ្នកប្រើ access-control និងការតភ្ជាប់បច្ចុប្បន្ន។",
          prompts: [
            "ខ្ញុំកំពុងភ្ជាប់ជាអ្នកណា?",
            "រាយអ្នកប្រើ ACL ទាំងអស់",
            "ខ្ញុំមានសិទ្ធិអ្វីខ្លះ?",
            "បង្ហាញវិធានអ្នកប្រើលំនាំដើម"
          ]
        },
        qna: {
          name: "សំណួរ & ចម្លើយទូទៅ",
          description: "សួរសំណួរចំណេះដឹង Redis — គ្មានឧបករណ៍ គ្រាន់តែចម្លើយ។",
          prompts: [
            "ZADD គឺជាអ្វី?",
            "cluster failover ដំណើរការយ៉ាងដូចម្តេច?",
            "ពន្យល់ SCAN ធៀបនឹង KEYS",
            "ពេលណាគួរប្រើ EVAL ធៀបនឹងពាក្យបញ្ជាច្រើន?",
            "ជម្រើសការរក្សាទុកយូរអង្វែងរបស់ Redis មានអ្វីខ្លះ?",
            "តើអ្វីជាភាពខុសគ្នារវាង RDB និង AOF?",
            "Redis Sentinel សម្រេចចិត្តលើ master ថ្មីយ៉ាងដូចម្តេច?",
            "ពន្យល់ hash tags ក្នុងរបៀប cluster"
          ]
        },
        translate: {
          name: "ភាសាធម្មជាតិ → ពាក្យបញ្ជា Redis",
          description: "ពណ៌នាអ្វីដែលអ្នកចង់បានជាភាសាធម្មតា (ឬក្នុង 54 ភាសាណាមួយ); AI សរសេរពាក្យបញ្ជា Redis។",
          prompts: [
            "លុបកូនសោ user:42",
            "ប្តូរឈ្មោះកូនសោ foo ទៅ bar",
            "ធ្វើឱ្យកូនសោ session:abc ផុតកំណត់ក្នុង 10 វិនាទី",
            "ចម្លងកូនសោ source ទៅ destination",
            "បង្កើន counter visits 5",
            "កំណត់កូនសោ greeting ទៅ \"hello\" រយៈពេល 1 ម៉ោង",
            "បង្ហាញ 10 កូនសោដែលត្រូវបានចូលប្រើញឹកញាប់បំផុត",
            "លុបកូនសោទាំងអស់ដែលត្រូវនឹង temp:*"
          ]
        }
      }
    },
    ssh: {
      on: "SSH បើក",
      off: "បិទ SSH",
      sshHost: "ម៉ាស៊ីន SSH",
      sshPort: "ច្រក SSH",
      sshUsername: "ឈ្មោះអ្នកប្រើ SSH",
      sshPassword: "ពាក្យសម្ងាត់ SSH",
      sshPrivateKey: "សោឯកជន SSH"
    },
    isBuffer: opts => `[object ArrayBuffer] មានន័យថាតម្លៃគឺជាទិន្នន័យគោលពីរ ឬតម្លៃធំជាង ${opts.maxValueAsBuffer}`,
    streamValue: `វាលស្ទ្រីម និងតម្លៃគឺជាបន្ទាត់តែមួយ។ ឧ.៖ field1 value1 "field 2" "value 2"`,
    streamTimestampId: `'*' មាន​ន័យ​ថា​បង្កើត​ដោយ​ស្វ័យ​ប្រវត្តិ ឬ​ការ​បញ្ជាក់​ជា <millisecondsTime>-<sequenceNumber>`,
    unableToLoadKey: ({
      key
    }) => {
      return `មិនអាចផ្ទុកសោនេះបានទេ៖ ${key}. អាចទៅរួច សោត្រូវបានលុប។ កំហុសពិតប្រាកដគឺនៅក្នុងកុងសូល។`;
    },
    bigJson: "វត្ថុ JSON នេះមានលើសពី 10 kb ដូច្នេះត្រូវប្រាកដថាអ្នកដឹងពីអ្វីដែលអ្នកកំពុងធ្វើ ពីព្រោះមុខងារមួយចំនួនអាចបង្ហាញយឺត។",
    addNode: "បន្ថែមថ្នាំង",
    validateJson: "ធ្វើឱ្យមានសុពលភាព JSON",
    reducedFunction: `មុខងារកាត់បន្ថយ`,
    tooManyKeys: opts => {
      return `សម្រាប់មុខងារអតិបរមាពេញលេញ គ្រាប់ចុចដែលអនុញ្ញាតសរុបគឺ ${opts.maxLightKeysCount} រាប់។ មូលដ្ឋានទិន្នន័យនេះមានលើសពីសោដែលបានអនុញ្ញាតសរុប ${opts.count}. ការតម្រៀបគន្លឹះ និងព័ត៌មានអំពីមែកធាងពុម្ពអក្សរក្បូរក្បាច់បន្ថែមត្រូវបានបិទ។ ការស្វែងរកគឺកើតឡើងតែនៅលើម៉ាស៊ីនមេ ជំនួសឱ្យការស្វែងរកអតិថិជន។`;
    },
    redisCommandNotFound: "រកមិនឃើញពាក្យបញ្ជា Redis ទេ...",
    treeKeyStore: `ការតម្រៀប (ការប្រៀបធៀបធម្មជាតិ) ត្រូវបានប្រតិបត្តិនៅលើម៉ាស៊ីនភ្ញៀវ aka កម្មវិធីរុករក ដែលមានន័យថាវាមានការផាកពិន័យសម្រាប់ឈុតធំ ៗ ដូចជាគ្រាប់ចុចលើសពី 10k វាអាចបន្ថែមពេលវេលាតិចតួចក្នុងការបង្ហាញទំព័រ។ មិនមានការតម្រៀបគន្លឹះនៅក្នុង Redis ទេ មានតែដូចនេះប៉ុណ្ណោះ។`,
    socketIoTimeout: options => {
      return `Socket.IO អស់ពេលសម្រាប់សំណើនេះ (អតិបរមា ${options.timeout / 1000} វិនាទី)...`;
    },
    resizerInfo: options => {
      return `ទទឹងអប្បបរមាបន្ទះខាងឆ្វេងឬស្តាំគឺ ${options.width}ភីច`;
    },
    jsonViewNotParsable: "តម្លៃនេះមិនអាចញែក JSON បានទេ។  ",
    ttlTitle: "កំណត់ TTL ជាវិនាទី",
    passwordSecure: "ពាក្យ​សម្ងាត់​អាច​នឹង​ទទេ ប៉ុន្តែ​នៅ​តែ​វា​នឹង​បង្ហាញ​តួអក្សរ នេះ​ជា​មុខងារ​សុវត្ថិភាព។",
    aclAuthHint: "ប្រើឈ្មោះអ្នកប្រើ និងពាក្យសម្ងាត់ Redis ACL ដើម្បីផ្ទៀងផ្ទាត់។ ទុកទទេសម្រាប់អ្នកប្រើប្រាស់លំនាំដើមដែលគ្មានពាក្យសម្ងាត់។",
    tlsWithoutCert: "បើកដំណើរការ TLS ដោយគ្មានវិញ្ញាបនបត្របន្ថែម",
    tlsRejectUnauthorized: "បដិសេធវិញ្ញាបនបត្រដែលគ្មានការអនុញ្ញាត",
    tlsSecure: "ប្រសិនបើអ្នកឃើញការកំណត់រចនាសម្ព័ន្ធ TLS ដែលចាប់ផ្តើមដោយ P3X ឬការកំណត់ TLS ទាំងអស់មើលទៅដូចគ្នា វាគឺជាមុខងារសុវត្ថិភាព។ ដើម្បីផ្លាស់ប្តូរការកំណត់ គ្រាន់តែជំនួសការកំណត់ទាំងនេះដោយទទេ ឬអ្វីផ្សេងទៀត ហើយពួកវានឹងត្រូវបានរក្សាទុក។ ប្រសិនបើអ្នកមិនផ្លាស់ប្តូរការកំណត់ TLS ទេ ការកំណត់នឹងត្រូវបានរក្សាទុកដូចដែលពួកវាស្ថិតនៅលើម៉ាស៊ីនមេ។",
    treeSeparatorEmpty: "ប្រសិនបើធាតុបំបែកមែកធាងគឺទទេ មែកធាងនឹងមិនមានថ្នាំងដែលជាប់គាំងទេ គ្រាន់តែជាបញ្ជីសុទ្ធប៉ុណ្ណោះ។",
    treeSeparatorEmptyNote: "គ្មាន​ថ្នាំង​ដែល​ជាប់​គ្នា​ទេ គ្រាន់​តែ​ជា​បញ្ជី​សុទ្ធ",
    welcomeConsole: "សូមស្វាគមន៍មកកាន់កុងសូល Redis",
    welcomeConsoleInfo: "SHIFT + ប្រវត្តិទស្សន៍ទ្រនិចឡើងលើ ឬចុះក្រោមត្រូវបានបើក",
    redisListIndexInfo: "ទទេ​ដើម្បី​បន្ថែម -1 ដើម្បី​បន្ថែម ឬ​រក្សាទុក​វា​ទៅ​ទីតាំង​ដែល​បាន​បង្ហាញ។",
    console: "កុងសូល។",
    connectiondAdd: "បន្ថែមការតភ្ជាប់",
    connectiondEdit: "កែសម្រួលការតភ្ជាប់",
    connectiondView: "មើលការតភ្ជាប់",
    connections: "ការតភ្ជាប់",
    keysSort: {
      on: "ការតម្រៀបគ្រាប់ចុចបើក",
      off: "ការតម្រៀបគ្រាប់ចុចបិទ"
    },
    cluster: {
      on: "Cluster បើក",
      off: "បិទ Cluster"
    },
    sentinel: {
      on: "Sentinel បើក",
      off: "បិទ Sentinel",
      name: "ឈ្មោះ Sentinel"
    },
    readonly: {
      on: "បានតែអានប៉ុណ្ណោះ។",
      off: "បិទការអានតែប៉ុណ្ណោះ"
    },
    theme: {
      light: "ពន្លឺ",
      dark: "សហគ្រាសងងឹត",
      darkNeu: "ងងឹត",
      darkoBluo: "ដាកូប៊្លូ",
      enterprise: "សហគ្រាស",
      redis: "Redis",
      matrix: "ម៉ាទ្រីស"
    },
    connected: opts => {
      return `បានភ្ជាប់៖ ${opts.name}`;
    },
    tree: "ដើមឈើ",
    askAuth: "សុំការអនុញ្ញាត",
    keyboardShortcuts: "Keyboard Shortcuts",
    about: "About",
    supportedLanguages: "Supported Languages",
    version: "Version",
    redisVersion: "Redis Version",
    modules: "modules",
    shortcutRefresh: "Refresh",
    shortcutSearch: "Focus Search",
    shortcutNewKey: "New Key",
    shortcutDisconnect: "ផ្តាច់",
    themeAuto: "Auto (system)",
    languageAuto: "Auto (system)",
    shortcutCommandPalette: "ក្ដារពាក្យបញ្ជា",
    commandPalette: "ក្ដារពាក្យបញ្ជា",
    noResults: "គ្មានលទ្ធផល",
    redisCommandsReference: "Redis ពាក្យបញ្ជា",
    ungrouped: "គ្មានក្រុម",
    grouped: "បានដាក់ជាក្រុម",
    connectFirst: "សូមភ្ជាប់ទៅម៉ាស៊ីនមេ Redis ជាមុន",
    searchLanguage: "ស្វែងរកភាសា...",
    exportProgress: "កំពុងនាំចេញសោ...",
    importProgress: "កំពុងនាំចូលសោ...",
    importPreview: "មើលជាមុន",
    importOverwrite: "សរសេរជំនួស",
    importSkip: "រំលង",
    importConflict: "ប្រសិនបើសោមានរួចហើយ:",
    noKeysToExport: "គ្មានសោដើម្បីនាំចេញ",
    time: "ពេលវេលា",
    type: "ប្រភេទ",
    format: "ទម្រង់",
    loading: "កំពុងផ្ទុក...",
    autoRefresh: "ស្វ័យប្រវត្តិ",
    exportSearchHint: "នាំចេញតែសោដែលផ្គូផ្គងនឹងការស្វែងរកបច្ចុប្បន្ន",
    importSearchHint: "ការនាំចូលអនុវត្តចំពោះមូលដ្ឋានទិន្នន័យទាំងមូល មិនមែនតែលទ្ធផលស្វែងរកទេ",
    deleteSearchHint: "លុបសោទាំងអស់ដែលផ្គូផ្គងនឹងការស្វែងរកបច្ចុប្បន្ននៅលើម៉ាស៊ីនមេ",
    deletingSearchKeys: "កំពុងលុបសោដែលផ្គូផ្គង...",
    importNoKeys: "រកមិនឃើញសោក្នុងឯកសារ",
    desktopNotifications: "Desktop Notifications",
    desktopNotificationsEnabled: "Enable desktop notifications",
    desktopNotificationsInfo: "ទទួលការជូនដំណឹងពី OS សម្រាប់ការផ្តាច់ និងភ្ជាប់ Redis ឡើងវិញ នៅពេលកម្មវិធីមិនស្ថិតក្នុងស្ថានភាពផ្តោត។"
  },
  status: {
    dataCopied: "ទិន្នន័យគឺនៅក្នុងក្ដារតម្បៀតខ្ទាស់",
    exportDone: "ការនាំចេញបានបញ្ចប់",
    deletedSearchKeys: (opts) => `បានលុប ${opts.count} សោ`,
    indexCreated: "បង្កើតសន្ទស្សន៍រួចរាល់",
    indexDropped: "លុបសន្ទស្សន៍រួចរាល់",
    importDone: (opts) => `ការនាំចូលបានបញ្ចប់: ${opts.created} បង្កើត, ${opts.skipped} រំលង, ${opts.errors} កំហុស`,
    nodeRemoved: "ថ្នាំងត្រូវបានដកចេញ",
    keyIsNotExisting: "សោនេះអាចត្រូវបានលុប ឬផុតកំណត់។",
    keyCount: opts => {
      if (opts.keyCount === 0) {
        return "គ្មានសោ";
      } else if (opts.keyCount === 1) {
        return "កូនសោ 1";
      } else {
        return `${opts.keyCount} សោ`;
      }
    },
    treeExpandAll: "ពង្រីកស្លឹកឈើទាំងអស់។ ប្រតិបត្តិការនេះអាចមានតម្លៃថ្លៃ ហើយអាចចំណាយពេល...",
    noRedisKeys: "មិនមានសោនៅក្នុងមូលដ្ឋានទិន្នន័យនេះទេ។",
    redisConnected: "ការតភ្ជាប់ Redis បានជោគជ័យ",
    reverted: "\u1794\u17b6\u1793\u178f\u17d2\u179a\u17a1\u1794\u17cb\u179c\u17b7\u1789",
    reloadingDataInfo: "កំពុងផ្ទុកព័ត៌មានទិន្នន័យ Redis ឡើងវិញ",
    added: "បន្ថែម",
    saved: "បានធ្វើបច្ចុប្បន្នភាព",
    cancelled: "បានលុបចោល",
    deleted: "បានលុប",
    savedRedis: "ទិន្នន័យ Redis ត្រូវបានរក្សាទុក",
    redisDisconnected: opts => {
      return `ការតភ្ជាប់បច្ចុប្បន្នមានកំហុស៖ ${opts.error.message}`;
    },
    dbChanged: opts => {
      return `សន្ទស្សន៍ db ត្រូវបានកំណត់ទៅ ${opts.db}. `;
    },
    treeDeleted: opts => {
      return `សោមែកធាងត្រូវបានលុប (${opts.key})`;
    },
    deletedKey: opts => {
      return `សោត្រូវបានលុប (${opts.key})`;
    },
    renamedKey: "សោនេះត្រូវបានប្តូរឈ្មោះ",
    ttlChanged: "TTL របស់សោនេះត្រូវបានផ្លាស់ប្តូរ",
    notInteger: "ការបញ្ចូលនេះមិនមែនជាចំនួនគត់ទេ។",
    persisted: "គន្លឹះ​នេះ​ស្ថិត​នៅ​ជា​រៀង​រហូត",
    set: "គ្រាប់ចុចត្រូវបានកំណត់ / បន្ថែម",
    connectionRestored: "ការតភ្ជាប់ត្រូវបានស្ដារឡើងវិញ",
    socketDisconnected: "ផ្ដាច់ការតភ្ជាប់",
    socketError: "កំហុសក្នុងការតភ្ជាប់",
    deletedHashKey: "សោហាសត្រូវបានលុប",
    deletedSetMember: "សមាជិកសំណុំត្រូវបានលុប",
    deletedListElement: "ធាតុបញ្ជីត្រូវបានលុប",
    deletedZSetMember: "សមាជិកសំណុំដែលបានតម្រៀបត្រូវបានលុប",
    deletedStreamTimestamp: "ធាតុស្ទ្រីមត្រូវបានលុប",
  },
  code: {
    "delete-connection": "ការ​តភ្ជាប់​នេះ​ត្រូវ​បាន​លុប ដូច្នេះ​អ្នក​ត្រូវ​បាន​ផ្ដាច់​ទៅ​នឹង​ឧទាហរណ៍ Redis នេះ។",
    "save-connection": "ការ​តភ្ជាប់​នេះ​ត្រូវ​បាន​ផ្លាស់​ប្តូ​រ ដូច្នេះ​អ្នក​ត្រូវ​បាន​ផ្ដាច់​ទៅ​នឹង​ឧទាហរណ៍ Redis នេះ។ អ្នកអាចភ្ជាប់ឡើងវិញបាន។",
    "readonly-connections": "ការតភ្ជាប់បន្ថែម / រក្សាទុក / លុបគឺបានតែអាន!",
    "readonly-connection-mode": "ការតភ្ជាប់នេះគ្រាន់តែជារបៀបអានប៉ុណ្ណោះ!",
    "list-out-of-bounds": "លិបិក្រមបញ្ជីនេះគឺហួសព្រំដែន",
    "invalid-json-value": "តម្លៃមិនត្រឹមត្រូវ JSON ។",
    "http_auth_required": "តម្រូវឱ្យមានការអនុញ្ញាត៖ សូមផ្ទៀងផ្ទាត់ជាមួយ HTTP Basic Auth ហើយផ្ទុកឡើងវិញ។",
    "auto-connection-failed": "អាចធ្វើទៅបាន ការតភ្ជាប់ត្រូវបានដកចេញ ហើយការភ្ជាប់ដោយស្វ័យប្រវត្តិបានបរាជ័យ ដោយសារបញ្ហានេះ។",
    invalid_console_command: "ពាក្យបញ្ជានេះមិនដំណើរការតាមរយៈ GUI ទេ។",
    "AI_DISABLED": "AI ត្រូវបានបិទ។ បើកវានៅក្នុងការកំណត់ AI។",
    "AI_PROMPT_REQUIRED": "ត្រូវការសំណួរ AI។",
    "GROQ_API_KEY_READONLY": "សោ Groq API គឺអានតែប៉ុណ្ណោះ ហើយមិនអាចកែប្រែបានទេ។",
    "blocked_api_access": "គម្រោង Groq API របស់អ្នកមិនអនុញ្ញាតឱ្យចូលប្រើម៉ូដែលនេះទេ។ សូមធ្វើឱ្យប្រសើរគម្រោង Groq ឬប្រើ proxy network.corifeus.com។",
    "rate_limit": "ដល់កំណត់អត្រា AI។ សូមព្យាយាមម្តងទៀតនៅពេលក្រោយ ឬប្រើសោ Groq API ផ្ទាល់ខ្លួននៅក្នុងការកំណត់។"
  },
  form: {
    error: {
      required: "ទាមទារ",
      port: "ច្រកស្ថិតនៅចន្លោះ 1-65535",
      invalid: "ទម្រង់​នេះ​មិន​ត្រឹមត្រូវ។"
    },
    connection: {
      label: {
        name: "ឈ្មោះ",
        group: "ក្រុម",
        host: "ឈ្មោះម៉ាស៊ីន",
        port: "ច្រក",
        password: "ពាក្យសម្ងាត់",
        username: "ឈ្មោះអ្នកប្រើប្រាស់"
      }
    },
    treeSettings: {
      maxValueDisplay: "តម្លៃអតិបរមាបង្ហាញប្រវែងខ្សែអក្សរ",
      maxValueDisplayInfo: "ប្រសិនបើកំណត់ទៅ 0 បង្ហាញតម្លៃពេញ។ ប្រសិនបើធំជាង 0 កាត់ឱ្យខ្លីទៅប្រវែងនេះ។ ប្រសិនបើ -1: សម្រាប់ខ្សែអក្សរ លាក់តម្លៃរហូតដល់កែសម្រួល។ សម្រាប់ប្រភេទផ្សេងទៀត បង្ហាញខ្លឹមសារពេញលេញ។",
      maxKeys: "ចំនួនគន្លឹះអតិបរមា",
      maxKeysInfo: "ដូច្នេះ GUI មិនគាំង យើងកំណត់ចំនួនគ្រាប់ចុចអតិបរមា។",
      keyCount: (opts) => {
        return `ចំនួនសោ៖ ${opts?.keyCount ?? 0}`;
      },
      label: {
        animation: "ប្រើចលនា",
        noAnimation: "គ្មានចលនា",
        undoEnabled: "\u1780\u17b6\u179a\u1798\u17b7\u1793\u1792\u17d2\u179c\u17be\u179c\u17b7\u1789\u178f\u17d2\u179a\u17bc\u179c\u1794\u17b6\u1793\u1794\u17be\u1780",
        undoDisabled: "\u1780\u17b6\u179a\u1798\u17b7\u1793\u1792\u17d2\u179c\u17be\u179c\u17b7\u1789\u178f\u17d2\u179a\u17bc\u179c\u1794\u17b6\u1793\u1794\u17b7\u1791",
        diffEnabled: "\u1794\u1784\u17d2\u17a0\u17b6\u1789 diff \u1798\u17bb\u1793\u1796\u17c1\u179b\u179a\u1780\u17d2\u179f\u17b6\u1791\u17bb\u1780",
        diffDisabled: "\u1794\u17b6\u1793\u1794\u17b7\u1791 diff \u1798\u17bb\u1793\u1796\u17c1\u179b\u179a\u1780\u17d2\u179f\u17b6\u1791\u17bb\u1780",
        jsonFormatTwoSpace: "ធ្វើទ្រង់ទ្រាយ JSON ដែលមាន 2 ដកឃ្លា",
        jsonFormatFourSpace: "ធ្វើទ្រង់ទ្រាយ JSON ដែលមាន 4 ដកឃ្លា",
        formName: "ការកំណត់ Redis",
        searchModeClient: "របៀបស្វែងរកអតិថិជន",
        searchModeServer: "របៀបស្វែងរកម៉ាស៊ីនមេ",
        searchModeStartsWith: "ស្វែងរកដោយចាប់ផ្តើមដោយរបៀប",
        searchModeIncludes: "ការស្វែងរករួមមានរបៀប"
      },
      undoHint: "\u1780\u17b6\u179a\u1798\u17b7\u1793\u1792\u17d2\u179c\u17be\u179c\u17b7\u1789\u17a2\u17b6\u1785\u1794\u17d2\u179a\u17be\u1794\u17b6\u1793\u179f\u1798\u17d2\u179a\u17b6\u1794\u17cb\u1794\u17d2\u179a\u1797\u17c1\u1791\u179f\u17c4 string \u1793\u17b7\u1784 JSON \u1794\u17c9\u17bb\u178e\u17d2\u178e\u17c4\u17c7",
      field: {
        treeSeparator: "អ្នកបំបែកដើមឈើ",
        treeSeparatorSelector: "ឧបករណ៍ជ្រើសរើសសញ្ញាបំបែកដើមឈើ",
        page: "ការរាប់ចំនួនដើមឈើ",
        keyPageCount: "ចំនួនទំព័រសំខាន់ៗ",
        keysSort: "តម្រៀបសោ",
        searchMode: "របៀបស្វែងរក",
        searchModeStartsWith: "ការស្វែងរកចាប់ផ្តើមដោយ / រួមបញ្ចូល"
      },
      error: {
        keyPageCount: "ចំនួនទំព័រគន្លឹះត្រូវតែជាចំនួនគត់ចន្លោះពី 5 ទៅ 100",
        page: "ចំនួនទំព័រត្រូវតែជាចំនួនគត់ចន្លោះពី 10 ទៅ 5000",
        maxValueDisplay: "តម្លៃបង្ហាញអតិបរមាត្រូវតែជាចំនួនគត់រវាង -1 និង 32768",
        maxKeys: "តម្លៃរាប់គ្រាប់ចុចអតិបរមាត្រូវតែជាចំនួនគត់ចន្លោះពី 100 ទៅ 100000"
      }
    },
    key: {
      label: {
        formName: {
          add: "បន្ថែមគ្រាប់ចុច Redis ថ្មី។",
          edit: "កែសម្រួលគ្រាប់ចុច Redis",
          append: "បន្ថែមទៅគ្រាប់ចុច Redis ដែលមានស្រាប់"
        }
      },
      field: {
        streamTimestamp: "ត្រាពេលវេលា",
        key: "សោ",
        type: "ប្រភេទ",
        index: "សន្ទស្សន៍",
        hashKey: "គ្រាប់ចុចហាស",
        score: "ពិន្ទុ",
        value: "តម្លៃ",
        errorRate: "អត្រាកំហុស",
        capacity: "សមត្ថភាព",
        topk: "Top K",
        width: "ទទឹង",
        depth: "ជម្រៅ",
        decay: "ការរលត់",
        compression: "ការបង្ហាប់",
        increment: "ការកើនឡើង",
        item: "ធាតុ",
        vectorValues: "Vector values (comma-separated)",
        element: "Element name",
      },
      error: {
        streamTimestamp: "ត្រាពេលវេលាត្រូវបានទាមទារ ទាំងទម្រង់ Redis ឬជា *",
        key: "គន្លឹះគឺយ៉ាងហោចណាស់តួអក្សរមួយ។",
        hashKey: "គ្រាប់ចុចតារាង hash គឺយ៉ាងហោចណាស់មួយតួអក្សរ",
        score: "ពិន្ទុដែលបានតម្រៀបត្រូវបានទាមទារ",
        value: "តម្លៃត្រូវបានទាមទារ",
        errorRate: "អត្រាកំហុសត្រូវតែស្ថិតចន្លោះ 0 និង 1 (ឧទា. 0.01)",
        capacity: "សមត្ថភាពត្រូវតែជាចំនួនគត់វិជ្ជមាន",
        topk: "Top K ត្រូវតែជាចំនួនគត់វិជ្ជមាន",
        width: "ទទឹងត្រូវតែជាចំនួនគត់វិជ្ជមាន",
        depth: "ជម្រៅត្រូវតែជាចំនួនគត់វិជ្ជមាន",
        item: "ធាតុត្រូវបានទាមទារ"
      }
    },
    main: {
      label: {
        database: "DB"
      }
    }
  },
  page: {
    search: {
      title: "ស្វែងរក",
      index: "សន្ទស្សន៍",
      query: "សំណួរ",
      results: "លទ្ធផល",
      noIndex: "រកមិនឃើញសន្ទស្សន៍",
      createIndex: "បង្កើតសន្ទស្សន៍",
      dropIndex: "លុបសន្ទស្សន៍",
      indexInfo: "ព័ត៌មានសន្ទស្សន៍",
      indexName: "ឈ្មោះសន្ទស្សន៍",
      prefix: "បុព្វបទសោ (ជាជម្រើស)",
      fieldName: "ឈ្មោះវាល",
      hybridMode: "ការស្វែងរកកូនកាត់ (FT.HYBRID)",
      vectorField: "វាលវ៉ិចទ័រ",
      vectorValues: "តម្លៃវ៉ិចទ័រ",
    },
    monitor: {
      title: "ការត្រួតពិនិត្យ",
      memory: "អង្គចងចាំ",
      opsPerSec: "ប្រតិបត្តិការ/វិ",
      clients: "អតិថិជន",
      blocked: "បានរារាំង",
      hitsMisses: "អត្រាបម្រើ",
      networkIo: "បណ្តាញ I/O",
      slowLog: "កំណត់ហេតុយឺត",
      noSlowQueries: "មិនមានការកត់ត្រាសំណួរយឺតទេ។",
      confirmSlowLogReset: "តើអ្នកប្រាកដថាចង់កំណត់កំណត់ហេតុយឺតឡើងវិញទេ?",
      slowLogResetDone: "កំណត់ហេតុយឺតត្រូវបានកំណត់ឡើងវិញ។",
      totalCommands: "សរុប",
      expired: "ផុតកំណត់",
      evicted: "បណ្តេញចេញ",
      clientList: "បញ្ជីអតិថិជន",
      topKeys: "សោធំបំផុតតាមអង្គចងចាំ",
      killClient: "បិទអតិថិជន",
      clientKilled: "អតិថិជនត្រូវបានបិទ",
      confirmKillClient: "តើអ្នកពិតជាចង់បិទអតិថិជននេះមែនទេ?",
      noKeys: "គ្មានសោ",
      rss: "RSS",
      peak: "កំពូល",
      fragmentation: "ការបែកខ្ចាត់ខ្ចាយ",
      hitsAndMisses: "ទទួលបាន / មិនទទួលបាន",
      noClients: "គ្មានអតិថិជន",
      slotStats: "ស្ថិតិស្លតចង្កោម",
      serverInfo: "ព័ត៌មានម៉ាស៊ីនមេ",
      os: "ប្រព័ន្ធប្រតិបត្តិការ",
      port: "ច្រកបណ្តាញ",
      pid: "លេខសម្គាល់ដំណើរការ",
      configFile: "ឯកសារកំណត់រចនាសម្ព័ន្ធ",
      uptime: "ម៉ោងធ្វើការ",
      keyspace: "ចន្លោះគន្លឹះ Redis",
      keys: "គ្រាប់ចុច Redis",
      expires: "ផុតកំណត់",
      noKeyspace: "គ្មានសោ",
      persistence: "ភាពស្ថិតស្ថេរនៃទិន្នន័យ",
      rdbLastSave: "RDB រក្សាទុកចុងក្រោយ",
      rdbStatus: "ស្ថានភាព RDB",
      rdbChanges: "ការផ្លាស់ប្តូរចាប់តាំងពីការរក្សាទុកចុងក្រោយ",
      aofEnabled: "AOF បានបើក",
      aofSize: "ទំហំ AOF",
      replication: "ការចម្លង Redis",
      role: "តួនាទីចម្លង",
      replicas: "ការចម្លងដែលបានភ្ជាប់",
      masterHost: "ម៉ាស៊ីនបឋម",
      linkStatus: "ស្ថានភាពតំណចម្លង",
      cpu: "ការប្រើប្រាស់ស៊ីភីយូ",
      cpuSys: "ប្រព័ន្ធ",
      cpuUser: "អ្នកប្រើប្រាស់",
      modules: "បានផ្ទុកម៉ូឌុល Redis",
      noModules: "មិនមានម៉ូឌុល Redis ត្រូវបានផ្ទុកទេ។",
      clusterSlotMap: "ផែនទីរន្ធដោតចង្កោម Redis",
      slotRange: "ជួររន្ធដោតចង្កោម",
      totalSlots: "រន្ធចង្កោមសរុប",
      noClusterData: "មិនមានទិន្នន័យក្រុម Redis ទេ។",
    },
    analysis: {
      title: "ការវិភាគអង្គចងចាំ",
      runAnalysis: "ដំណើរការវិភាគ",
      running: "កំពុងវិភាគ...",
      typeDistribution: "ការចែកចាយប្រភេទ",
      prefixMemory: "អង្គចងចាំតាមបុព្វបទ",
      topKeysByMemory: "សោធំបំផុតតាមអង្គចងចាំ",
      expirationOverview: "ការផុតកំណត់សោ",
      memoryBreakdown: "ការបែងចែកអង្គចងចាំ",
      keysScanned: "សោដែលបានស្កេន",
      totalMemory: "អង្គចងចាំសរុប",
      rssMemory: "អង្គចងចាំ RSS",
      peakMemory: "អង្គចងចាំកំពូល",
      luaMemory: "អង្គចងចាំ Lua",
      overheadMemory: "បន្ទុកបន្ថែម",
      datasetMemory: "សំណុំទិន្នន័យ",
      fragmentation: "ការបែកខ្ចាត់ខ្ចាយ",
      allocator: "អ្នកបែងចែក",
      withTTL: "មាន TTL",
      persistent: "អចិន្ត្រៃយ៍",
      avgTTL: "TTL មធ្យម",
      prefix: "បុព្វបទ",
      keyCount: "ចំនួនសោ",
      memoryUsage: "ការប្រើប្រាស់អង្គចងចាំ",
      noPrefix: "(គ្មានបុព្វបទ)",
      topN: "Top N",
      maxScanKeys: "សោស្កេនអតិបរមា",
      type: "ប្រភេទ",
      noData: "គ្មានទិន្នន័យ។ ចុចដំណើរការវិភាគដើម្បីចាប់ផ្តើម។",
      exportAll: "នាំចេញទាំងអស់",
      memoryDoctor: "Memory Doctor",
      doctorNoData: "ចុច ធ្វើឱ្យស្រស់ ដើម្បីដំណើរការការវិនិច្ឆ័យ Memory Doctor ។",
    },
    acl: {
      title: "អ្នកប្រើប្រាស់ ACL",
      loadUsers: "ផ្ទុកអ្នកប្រើប្រាស់",
      loading: "កំពុងផ្ទុក...",
      username: "ឈ្មោះអ្នកប្រើប្រាស់",
      status: "ស្ថានភាព",
      enabled: "បានបើក",
      disabled: "បិទ",
      commands: "ពាក្យបញ្ជា",
      commandsHint: "ឧ. +@all or +@read -@dangerous",
      keys: "លំនាំគន្លឹះ Redis",
      keysHint: "ឧ. ~* or ~user:*",
      channels: "ប៉ុស្តិ៍ Pub/Sub",
      channelsHint: "ឧ. &* or &notifications:*",
      password: "ពាក្យសម្ងាត់",
      noPassword: "គ្មានពាក្យសម្ងាត់ (nopass)",
      passwordHint: "ទុកឲ្យទទេ ដើម្បីរក្សាពាក្យសម្ងាត់បច្ចុប្បន្ន",
      currentUser: "បច្ចុប្បន្ន",
      createUser: "បង្កើតអ្នកប្រើប្រាស់",
      editUser: "កែសម្រួលអ្នកប្រើប្រាស់",
      deleteUser: "លុប",
      confirmDelete: "តើអ្នកប្រាកដថាចង់លុបអ្នកប្រើប្រាស់ ACL មែនទេ?",
      userDeleted: "អ្នកប្រើប្រាស់ ACL ត្រូវបានលុប។",
      userSaved: "អ្នកប្រើប្រាស់ ACL ត្រូវបានរក្សាទុក។",
      cannotDeleteDefault: "មិនអាចលុបអ្នកប្រើប្រាស់លំនាំដើមបានទេ។",
      cannotDeleteSelf: "មិនអាចលុបអ្នកប្រើប្រាស់ដែលបានភ្ជាប់បច្ចុប្បន្នបានទេ។",
      noUsers: "ACL ទាមទារ Redis 6.0+ ។",
      groupCommon: "ទូទៅ",
      groupDataTypes: "ប្រភេទទិន្នន័យ",
      groupOperations: "ប្រតិបត្តិការ",
      rules: "វិន័យ",
      rulesHint: "ថូខឹនដែលបំបែកដោយលំហ (ឧទាហរណ៍ on >password +@all ~* &*)",
      defaultUserWarning: "ប្រយ័ត្ន៖ ការកែប្រែអ្នកប្រើប្រាស់លំនាំដើមអាចបិទការភ្ជាប់ទាំងអស់។ ប្រសិនបើរឿងនេះកើតឡើង អ្នកនឹងត្រូវចាប់ផ្តើម Redis ឡើងវិញ ឬប្រើ redis-cli ដើម្បីស្ដារការចូលប្រើឡើងវិញ។",
    },
    overview: {
      noConnected: "មិនមានទំនាក់ទំនងជាមួយ Redis ទេ។",
      overviewClients: "រាយបញ្ជីទំនាក់ទំនងដោយចំនួនអតិថិជន",
      connectedCount: opt => {
        if (opt.length === 1) {
          return "អតិថិជន 1 នាក់។";
        }
        return `${opt.length} អតិថិជន`;
      }
    },
    key: {
      label: {
        key: "សោ",
        encoding: "ការអ៊ិនកូដ",
        compression: "ការបង្ហាប់",
        aiRateLimited: "ដែនកំណត់សំណើ AI បានឈានដល់។ សាកល្បងម្តងទៀតនៅពេលក្រោយ ឬប្រើសោ Groq API ផ្ទាល់ខ្លួនរបស់អ្នកក្នុងការកំណត់។",
        aiError: "សំណួរ AI បានបរាជ័យ",
        length: "ទំហំ",
        ttl: "TTL",
        ttlTitle: "ពេលវេលាដើម្បីរស់នៅ",
        type: "ប្រភេទ",
        ttlNotExpire: "មិនផុតកំណត់ទេ។",
        lengthString: "បៃ",
        lengthItem: "ធាតុ",
        actions: "សកម្មភាព"
      },
      list: {
        table: {
          index: "សន្ទស្សន៍",
          value: "តម្លៃ"
        }
      },
      hash: {
        table: {
          hashkey: "ហាស់ឃី",
          value: "តម្លៃ"
        }
      },
      set: {
        table: {
          value: "សមាជិក"
        }
      },
      zset: {
        table: {
          value: "សមាជិក",
          score: "ពិន្ទុ"
        }
      },
      stream: {
        table: {
          timestamp: "លេខសម្គាល់ពេលវេលា",
          field: "វាល",
          value: "តម្លៃ"
        }
      },
      timeseries: {
        chart: "\u1780\u17d2\u179a\u17b6\u17a0\u17d2\u179c\u17b7\u1780",
        info: "\u1796\u17c0\u178f\u17cc\u1798\u17b6\u1793",
        addPoint: "\u1794\u1793\u17d2\u1790\u17c2\u1798\u1785\u17c6\u178e\u17bb\u1785\u1791\u17b7\u1793\u17d2\u1793\u1793\u17d0\u1799",
        from: "\u1796\u17b8 (ms \u17ac -)",
        to: "\u178a\u179b\u17cb (ms \u17ac +)",
        aggregation: "\u1780\u17b6\u179a\u1794\u1789\u17d2\u1785\u17bc\u179b\u1782\u17d2\u1793\u17b6",
        timeBucket: "\u1790\u17bb\u1784 (ms)",
        none: "\u1782\u17d2\u1798\u17b6\u1793",
        dataPoints: "\u1785\u17c6\u178e\u17bb\u1785\u1791\u17b7\u1793\u17d2\u1793\u1793\u17d0\u1799",
        labels: "\u179f\u17d2\u179b\u17b6\u1780\u179f\u1789\u17d2\u1789\u17b6",
        rules: "\u179c\u17b7\u1793\u17d0\u1799",
        retention: "\u1780\u17b6\u179a\u179a\u1780\u17d2\u179f\u17b6\u1791\u17bb\u1780",
        timestamp: "\u179f\u17d2\u178f\u17b6\u1798\u1796\u17c1\u179b\u179c\u17c1\u179b\u17b6",
        value: "\u178f\u1798\u17d2\u179b\u17c3",
        retentionHint: "0 = \u1798\u17b7\u1793\u17a2\u179f\u17cb\u17a2\u17b6\u1799\u17bb, \u17ac \u1798\u17b7\u179b\u17d2\u179b\u17b8\u179c\u17b7\u1793\u17b6\u1791\u17b8",
        duplicatePolicy: "\u1782\u17c4\u179b\u1793\u17b6\u1799\u17d4\u179f\u17c6\u1785\u17c6\u179b\u1784\u179f\u17d2\u1791\u17c0\u179a",
        labelsHint: "key1 value1 key2 value2",
        timestampHint: "'*' \u1798\u17b6\u1793\u1793\u17d0\u1799\u1790\u17b6\u1794\u1784\u17d2\u1780\u17be\u178f\u178a\u17c4\u1799\u179f\u17d2\u179c\u17d0\u1799\u1794\u17d2\u179a\u179c\u178f\u17d2\u178f\u17b7, \u17ac \u179f\u17d2\u178f\u17b6\u1798\u1796\u17c1\u179b\u179c\u17c1\u179b\u17b6\u1798\u17b7\u179b\u17d2\u179b\u17b8\u179c\u17b7\u1793\u17b6\u1791\u17b8",
        editAllHint: "\u1798\u17bd\u1799\u1785\u17c6\u178e\u17bb\u1785\u1791\u17b7\u1793\u17d2\u1793\u1793\u17d0\u1799\u1780\u17d2\u1793\u17bb\u1784\u1798\u17bd\u1799\u1787\u17bd\u179a: \u179f\u17d2\u178f\u17b6\u1798\u1796\u17c1\u179b\u179c\u17c1\u179b\u17b6 \u178f\u1798\u17d2\u179b\u17c3 (\u179f\u17d2\u178f\u17b6\u1798\u1796\u17c1\u179b\u179c\u17c1\u179b\u17b6\u17a2\u17b6\u1785\u1787\u17b6 * \u179f\u1798\u17d2\u179a\u17b6\u1794\u17cb\u179f\u17d2\u179c\u17d0\u1799\u1794\u17d2\u179a\u179c\u178f\u17d2\u178f\u17b7)",
        autoSpread: "\u1785\u1793\u17d2\u179b\u17c4\u17c7\u1796\u17c1\u179b\u179a\u17b6\u179b\u17a0\u17b6\u1799\u179f\u17d2\u179c\u17d0\u1799\u1794\u17d2\u179a\u179c\u178f\u17d2\u178f\u17b7 *",
        formula: "\u179a\u17bc\u1794\u1798\u1793\u17d2\u178f",
        formulaLinear: "\u179b\u17b8\u1793\u17c1\u17a2\u17ca\u17c2\u179a",
        formulaRandom: "\u1785\u17c3\u178a\u1793\u17d2\u1799",
        formulaSawtooth: "\u1790\u17d2\u1780\u17c2\u179c\u17a2\u17ca\u17b8",
        formulaPoints: "\u1785\u17c6\u178e\u17bb\u1785",
        formulaAmplitude: "\u17a2\u17b6\u17c6\u1797\u17d2\u179b\u17b8\u1792\u17bc\u178a",
        formulaOffset: "\u17a2\u17bb\u1794\u179f\u17c1\u178f",
        generate: "\u1794\u1784\u17d2\u1780\u17be\u178f",
        exportChart: "\u1793\u17b6\u17c6\u1785\u17c1\u1789 PNG",
        overlay: "\u179f\u17c4\u178f\u17d2\u179a\u17b6\u1794\u17cb\u1782\u17d2\u1793\u17b6",
        overlayHint: "\u179f\u17c4\u1794\u17c6\u1794\u17c2\u1780\u178a\u17c4\u1799\u179f\u17c0\u1789\u1780\u17c6\u178e\u178f",
        mrangeFilter: "\u178f\u1798\u17d2\u179a\u1784\u179f\u17d2\u179b\u17b6\u1780\u179f\u1789\u17d2\u1789\u17b6",
        bulkMode: "បង្កើតច្រើន",
        mrangeHint: "\u17a7\u1791\u17b6. sensor=temp"
      },
      probabilistic: {
        info: "ព័ត៌មាន",
        addItem: "បន្ថែមធាតុ",
        checkItem: "ពិនិត្យធាតុ",
        item: "ធាតុ",
        exists: "មាន",
        doesNotExist: "មិនមាន",
        topkList: "បញ្ជី TopK",
        topkCount: "ចំនួន TopK",
        queryCount: "ចំនួនសំណួរ",
        queryResult: "លទ្ធផលសំណួរ",
        addedSuccessfully: "ធាតុត្រូវបានបន្ថែមដោយជោគជ័យ",
        deletedSuccessfully: "ធាតុត្រូវបានលុបដោយជោគជ័យ",
        quantile: "ក្វាន់ទីល",
        quantileResult: "លទ្ធផល",
        noItems: "គ្មានធាតុសម្រាប់បង្ហាញ",
        resetConfirm: "តើត្រូវកំណត់ទិន្នន័យទាំងអស់នៅក្នុង T-Digest នេះឡើងវិញមែនទេ?"
      },
      vectorset: {
        info: "ព័ត៌មាន",
        elements: "Elements",
        similarity: "Similarity Search",
        searchByElement: "Search by element",
        searchByVector: "Search by vector",
        vectorValues: "Vector values",
        element: "Element",
        score: "Score",
        count: "ចំនួន",
        addElement: "Add Element",
        attributes: "Attributes",
        noAttributes: "No attributes",
        dimensions: "Dimensions",
        removeConfirm: "តើត្រូវលុបធាតុនេះចេញពី VectorSet មែនទេ?",
        noElements: "No elements",
        filter: "តម្រង",
        searchComplete: "ការស្វែងរកបានបញ្ចប់",
      }
    },
    treeControls: {
      settings: "ការកំណត់ដើមឈើ",
      expandAll: "ពង្រីកទាំងអស់។",
      collapseAll: "ដួលរលំទាំងអស់។",
      level: "កម្រិត",
      search: {
        search: "ស្វែងរកក្នុងសោ",
        clear: "សម្អាតការស្វែងរកបច្ចុប្បន្នដើម្បីកំណត់ទទេ",
        placeholderClient: "ស្វែងរកផ្នែកអតិថិជន",
        placeholderServer: "ស្វែងរកផ្នែកខាងម៉ាស៊ីនមេ",
        info: (opts) => "ការស្វែងរកផ្នែកខាងអតិថិជនមានន័យថា វាត្រូវគ្នានឹងអត្ថបទនៅក្នុងប្រអប់ស្វែងរក។ ការស្វែងរកផ្នែកខាងម៉ាស៊ីនមេមានន័យថា វាស្រដៀងនឹងការស្វែងរកតាមលំនាំសោជា *{search-text}*។ សម្រាប់សំណុំស្វែងរកធំ វាល្អជាងក្នុងការប្រើការស្វែងរកផ្នែកខាងម៉ាស៊ីនមេ។ សម្រាប់សំណុំស្វែងរកតូច វាល្អជាងក្នុងការប្រើរបៀបស្វែងរកផ្នែកខាងអតិថិជន។" + ` ប្រសិនបើចំនួនសោលើស ${opts?.maxLightKeysCount ?? 110000} អ្នកអាចស្វែងរកបានតែផ្នែកខាងម៉ាស៊ីនមេប៉ុណ្ណោះ។`,
        largeSetInfo: "នៅក្នុងសំណុំធំ ការស្វែងរកភាគីអតិថិជនត្រូវបានបិទ។ ដូច្នេះឥឡូវនេះមានតែការស្វែងរកផ្នែកខាងម៉ាស៊ីនមេប៉ុណ្ណោះដែលអាចធ្វើទៅបាន។",
        infoDetails: "ដើម្បីស្វែងយល់ពីរបៀបដែលការស្វែងរកដំណើរការ សូមពិនិត្យមើលការកំណត់"
      },
      pager: {
        next: "បន្ទាប់",
        prev: "មុន",
        first: "ទីមួយ",
        last: "ចុងក្រោយ"
      }
    }
  },
  time: {
    years: "ឆ្នាំ",
    months: "ខែ",
    days: "ថ្ងៃ",
    year: "ឆ្នាំ",
    month: "ខែ",
    day: "ថ្ងៃ",
    second: "\u179c\u17b7\u1793\u17b6\u1791\u17b8",
    seconds: "\u179c\u17b7\u1793\u17b6\u1791\u17b8",
    minute: "\u1793\u17b6\u1791\u17b8",
    minutes: "\u1793\u17b6\u1791\u17b8",
    hour: "\u1798\u17c9\u17c4\u1784",
    hours: "\u1798\u17c9\u17c4\u1784"
  },
  redisTypes: {
    string: "String",
    list: "List",
    hash: "Hash table",
    set: "Set",
    zset: "Sorted set - zset",
    stream: "Stream",
    json: "JSON",
    timeseries: "Time Series",
    bloom: "Bloom តម្រង",
    cuckoo: "Cuckoo តម្រង",
    topk: "Top-K",
    cms: "Count-Min Sketch",
    tdigest: "T-Digest",
    vectorset: "VectorSet",
  },
  promo: {
    title: "ជំនួយការ​បណ្ដាញ AI",
    description: "ស្វែងយល់ពីជំនួយការបណ្ដាញ AI ឥតគិតថ្លៃរបស់យើងនៅ network.corifeus.com។ វិភាគដែន, IP, កំណត់ត្រា DNS, វិញ្ញាបនបត្រ SSL, សុវត្ថិភាពអ៊ីមែល និងហេដ្ឋារចនាសម្ព័ន្ធបណ្ដាញ។ ដំណើរការដោយ AI ដើម្បីផ្តល់លទ្ធផលទូលំទូលាយភ្លាមៗ។",
    disclaimer: "ការផ្សព្វផ្សាយនេះបង្ហាញតែនៅលើគេហទំព័រ demo ប៉ុណ្ណោះ ហើយនឹងមិនបង្ហាញនៅក្នុង Docker, Electron ឬ web app deployment ទេ។",
    toastMessage: "សាកល្បងជំនួយការបណ្ដាញ AI ឥតគិតថ្លៃរបស់យើងនៅ network.corifeus.com។ វិភាគដែន, DNS, SSL និងច្រើនទៀត!",
    visit: "ចូលទៅកាន់ network.corifeus.com",
  }
};
module.exports = strings;