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 ¬ifications:*",
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;