const strings = {
error: {
server_error: "خطأ في الخادم، يرجى المحاولة مرة أخرى"
},
title: {
donate: "تبرع",
donateTitle: "ادعم P3X Redis UI",
donateDescription: "P3X Redis UI هو مشروع مجاني ومفتوح المصدر. تكاليف صيانة التطبيق وميزات الذكاء الاصطناعي وصور 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: "الوحدات",
errorstats: "إحصائيات الأخطاء",
commandstats: "إحصائيات الأوامر",
latencystats: "إحصائيات زمن الاستجابة",
keysizes: "أحجام المفاتيح",
threads: "الخيوط"
},
confirm: {
dropIndex: "هل أنت متأكد من حذف هذا الفهرس؟",
uploadBuffer: "هل أنت متأكد من تحميل هذه البيانات الثنائية؟",
uploadBufferDone: "يتم تحميل البيانات الثنائية",
uploadBufferDoneAndSave: "يتم تحميل البيانات الثنائية وحفظها على الخادم",
title: "تأكيد",
alert: "تنبيه",
info: "معلومات",
deleteListItem: "هل أنت متأكد من حذف عنصر القائمة هذا؟",
deleteHashKey: "هل أنت متأكد من حذف عنصر مفتاح التجزئة هذا؟",
deleteStreamTimestamp: "هل أنت متأكد من حذف هذا الطابع الزمني للبث؟",
deleteSetMember: "هل أنت متأكد من حذف هذا العضو في المجموعة؟",
deleteZSetMember: "هل أنت متأكد من حذف عضو المجموعة الذي تم فرزه؟",
deleteConnection: "تأكيد",
deleteConnectionText: "هل أنت متأكد من حذف اتصال Redis هذا؟",
deleteNode: "هل أنت متأكد من حذف عقدة Redis هذه؟",
delete: "حذف؟",
deleteAllKeys: opts => {
return `احذف هذه الشجرة وكل مفاتيحها (${opts.key})؟`;
},
deleteSearchKeys: opts => {
return `هل أنت متأكد من حذف جميع المفاتيح المطابقة لـ "${opts.pattern}"؟ تم العثور على ${opts.count} مفتاح.`;
},
socketioConnectError: "لا يمكن لـ Socket.IO الاتصال بالخادم، يمكنك إعادة التحميل ومحاولة حل خطأ الاتصال بنفسك، ولا يعرف العميل كيفية حل المشكلة بنفسه.",
socketioAuthRequired: "مطلوب إذن Socket.IO. يرجى المصادقة باستخدام HTTP Basic Auth (اسم المستخدم/كلمة المرور) وإعادة التحميل.",
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: "تنسيق جيسون",
wrap: "التفاف",
unwrap: "بسط",
downloadJson: "تحميل JSON",
pubsubMonitor: "PubSub",
pulse: "Pulse",
profiler: "Profiler",
memoryAnalysis: "Analysis",
// When you translate the language, keep the Language in English
// eg. Idioma / Language
language: "اللغة",
ok: "حسنًا",
addKey: "أضف إلى هذا المفتاح",
addKeyRoot: "أضف مفتاح الجذر",
reloadKey: "إعادة تحميل المفتاح",
reload: "إعادة تحميل",
close: "إغلاق",
commands: "الأوامر",
view: "عرض",
statistics: "الإحصائيات",
refresh: "تحديث",
pause: "إيقاف مؤقت",
resume: "استئناف",
clear: "واضح",
rename: "إعادة تسمية",
main: "قاعدة البيانات",
cancel: "إلغاء",
theme: "الموضوع",
github: "GitHub",
githubRepo: "مستودع",
githubRelease: "الإصدارات",
githubChangelog: "سجل التغيير",
info: "Info",
settings: "الإعدادات",
connect: "الاتصال",
disconnect: "قطع الاتصال",
overview: "نظرة عامة",
console: "وحدة التحكم",
noConnections: "لا يوجد اتصالات، قم بإضافة اتصال في قائمة الإعدادات.",
noConnectionsInSettings: "لا توجد اتصالات، يمكنك إضافة اتصال جديد أعلاه.",
connectionAdd: "اتصال جديد",
addGroup: "إضافة مجموعة",
extend: "تمديد",
collapse: "طي",
add: "أضف",
edit: "تحرير",
save: "حفظ",
ttl: "قم بتعيين TTL",
delete: "حذف",
remove: "إزالة",
areYouSure: "هل أنت متأكد؟",
sure: "بالتأكيد",
testConnection: "اتصال الاختبار",
getKey: "جارٍ تحميل مفتاح Redis والبيانات المرتبطة به ...",
jsonViewShow: "عرض JSON",
jsonViewEditor: "تحرير JSON",
quickConsole: "وحدة التحكم السريعة"
},
label: {
id: {
nodeId: "معرف العقدة",
id: "معرف الاتصال",
info: "إذا كنت لا ترغب في تغيير خصائص: sshPassword، وsshPrivateKey، وpassword، وtlsCrt، وtlsKey، وtlsCa، فيرجى إدخال معرف الاتصال في تلك الخصائص للحفاظ على قيم الخاصية سليمة. إذا كنت تريد نفس المنطق في كلمة مرور العقدة، فأدخل معرف العقدة في كلمة مرور العقدة."
},
secureFeature: "إذا رأيت قيمة تبدأ بـ P3X بنفس الشكل، فهذه ميزة آمنة. لتغيير الإعدادات، ما عليك سوى استبدال هذه الإعدادات بفارغة أو أي شيء آخر وسيتم حفظها. إذا لم تقم بتغيير الإعدادات، فسيتم الاحتفاظ بالإعدادات كما هي على الخادم.",
aiTranslating: "جاري الترجمة...",
aiSettings: "إعدادات AI",
aiGroqApiKey: "مفتاح API Groq",
aiGroqApiKeyInfo: "اختياري. مفتاح API Groq خاص بك لأداء أفضل. احصل على مفتاح مجاني من",
aiGroqApiKeyPlaceholder: "gsk_...",
aiGroqApiKeySaved: "تم حفظ مفتاح API AI",
aiGroqApiKeyInvalid: "Invalid Groq API key",
aiGroqApiKeyNotSet: "غير محدد (الافتراضي للخادم)",
aiEnabled: "AI مفعّل",
aiEnabledYes: "نعم",
aiEnabledNo: "لا",
aiRouteViaNetwork: "Route via network.corifeus.com",
aiRoutingDirect: "Queries go directly to Groq using your own API key, bypassing network.corifeus.com.",
aiRoutingNetwork: "AI queries are routed through network.corifeus.com. If you have your own free Groq API key, you can turn off this switch to route directly to Groq without network.corifeus.com.",
ssh: {
on: "SSH على",
off: "إيقاف تشغيل SSH",
sshHost: "المضيف SSH",
sshPort: "منفذ SSH",
sshUsername: "اسم المستخدم SSH",
sshPassword: "كلمة المرور SSH",
sshPrivateKey: "SSH المفتاح الخاص"
},
isBuffer: opts => `[object ArrayBuffer] يعني أن القيمة عبارة عن بيانات ثنائية أو أن القيمة أكبر منها ${opts.maxValueAsBuffer}`,
streamValue: `حقل الدفق والقيمة عبارة عن خط واحد. على سبيل المثال: الحقل 1 القيمة 1 "الحقل 2" "القيمة 2"`,
streamTimestampId: `"*" يعني إنشاء تلقائي أو المواصفات كـ <millisecondsTime>-<sequenceNumber>`,
unableToLoadKey: ({
key
}) => {
return `غير قادر على تحميل هذا المفتاح: ${key}. ممكن، تم حذف المفتاح. الخطأ الدقيق موجود في وحدة التحكم.`;
},
bigJson: "يزيد حجم كائن JSON هذا عن 10 كيلو بايت، لذا تأكد من أنك تعرف ما تفعله، لأن بعض الوظائف قد تكون بطيئة في العرض.",
addNode: "أضف عقدة",
validateJson: "التحقق من صحة JSON",
reducedFunction: `انخفاض الوظائف`,
tooManyKeys: opts => {
return `للحصول على الحد الأقصى الكامل للوظائف المسموح بها، إجمالي المفاتيح هو ${opts.maxLightKeysCount} العد. تحتوي قاعدة البيانات هذه على المفاتيح المسموح بها إجمالاً ${opts.count}. تم تعطيل فرز المفاتيح ومعلومات الشجرة الفاخرة الإضافية. يتم البحث فقط على الخادم بدلاً من بحث العميل.`;
},
redisCommandNotFound: "لم يتم العثور على تطابق أمر Redis ...",
treeKeyStore: `يتم تنفيذ الفرز (المقارنة الطبيعية) على العميل المعروف أيضًا باسم المتصفح، مما يعني أنه يفرض عقوبة على المجموعات الكبيرة الكبيرة، مثل أكثر من 10 آلاف مفتاح، وقد يضيف القليل من الوقت لعرض الصفحة. لا يوجد فرز للمفاتيح في Redis، فقط هكذا.`,
socketIoTimeout: options => {
return `انتهت مهلة Socket.IO لهذا الطلب (بحد أقصى ${options.timeout / 1000} ثواني)...`;
},
resizerInfo: options => {
return `الحد الأدنى لعرض اللوحة اليسرى أو اليمنى هو ${options.width}بكسل`;
},
jsonViewNotParsable: "هذه القيمة غير قابلة للتحليل JSON ",
ttlTitle: "اضبط TTL في ثوانٍ",
passwordSecure: "قد تكون كلمة المرور فارغة، ولكنها ستظهر أحرفًا، وهذه ميزة أمنية.",
tlsWithoutCert: "تمكين TLS بدون شهادة إضافية",
tlsRejectUnauthorized: "رفض الشهادة غير المصرح بها",
tlsSecure: "إذا رأيت تكوين TLS يبدأ بـ P3X أو تبدو جميع إعدادات TLS متشابهة، فهذه ميزة آمنة. لتغيير الإعدادات، ما عليك سوى استبدال هذه الإعدادات بفارغة أو أي شيء آخر وسيتم حفظها. إذا لم تقم بتغيير إعدادات TLS، فسيتم الاحتفاظ بالإعدادات كما هي على الخادم.",
treeSeparatorEmpty: "إذا كان فاصل الشجرة فارغًا، فلن تحتوي الشجرة على عقد متداخلة، بل مجرد قائمة خالصة",
treeSeparatorEmptyNote: "لا توجد عقد متداخلة، مجرد قائمة نقية",
welcomeConsole: "مرحبًا بك في وحدة التحكم Redis",
welcomeConsoleInfo: "تم تمكين سجل المؤشر لأعلى أو لأسفل",
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: "الوحدات",
shortcutRefresh: "Refresh",
shortcutSearch: "Focus Search",
shortcutNewKey: "New Key",
shortcutDisconnect: "قطع الاتصال",
themeAuto: "Auto (system)",
languageAuto: "Auto (system)",
shortcutCommandPalette: "Command Palette",
commandPalette: "Command Palette",
noResults: "No results",
redisCommandsReference: "أوامر Redis",
ungrouped: "بدون مجموعة",
grouped: "Grouped",
connectFirst: "اتصل بخادم Redis أولاً",
searchLanguage: "بحث عن لغة...",
exportProgress: "جارٍ تصدير المفاتيح...",
importProgress: "جارٍ استيراد المفاتيح...",
importPreview: "معاينة",
importOverwrite: "الكتابة فوق",
importSkip: "تخطي",
importConflict: "إذا كان المفتاح موجودًا بالفعل:",
noKeysToExport: "لا توجد مفاتيح للتصدير",
time: "الوقت",
type: "النوع",
format: "التنسيق",
loading: "جارٍ التحميل...",
autoRefresh: "تلقائي",
exportSearchHint: "تصدير المفاتيح المطابقة للبحث الحالي فقط",
importSearchHint: "الاستيراد يطبق على قاعدة البيانات بالكامل وليس نتائج البحث فقط",
deleteSearchHint: "يحذف جميع المفاتيح المطابقة للبحث الحالي على الخادم",
deletingSearchKeys: "جارٍ حذف المفاتيح المطابقة...",
importNoKeys: "لم يتم العثور على مفاتيح في الملف",
desktopNotifications: "إشعارات سطح المكتب",
desktopNotificationsEnabled: "تفعيل إشعارات سطح المكتب",
desktopNotificationsInfo: "تلقي إشعارات نظام التشغيل عند انقطاع اتصال 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 بنجاح",
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: "تم استعادة الاتصال"
},
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_PROMPT_REQUIRED": "مطلوب إدخال نص للذكاء الاصطناعي.",
"GROQ_API_KEY_READONLY": "مفتاح Groq API للقراءة فقط ولا يمكن تعديله.",
"blocked_api_access": "خطة Groq API الخاصة بك لا تسمح بالوصول إلى هذا النموذج. يرجى ترقية خطة Groq أو استخدام وكيل network.corifeus.com.",
"rate_limit": "تم الوصول إلى حد معدل AI. حاول مرة أخرى لاحقًا أو استخدم مفتاح Groq API الخاص بك في الإعدادات."
},
form: {
error: {
required: "مطلوب",
port: "المنفذ بين 1-65535",
invalid: "النموذج غير صالح"
},
connection: {
label: {
name: "الاسم",
group: "Group",
host: "اسم المضيف",
port: "ميناء",
password: "كلمة المرور",
username: "اسم المستخدم"
}
},
treeSettings: {
maxValueDisplay: "الحد الأقصى لطول سلسلة عرض القيمة",
maxValueDisplayInfo: "إذا تم التعيين على 0، قم بإظهار القيم الكاملة. إذا كان أكبر من 0، اقتطاع إلى هذا الطول. إذا -1: بالنسبة للسلاسل، قم بإخفاء القيمة حتى يتم التحرير؛ أما بالنسبة للأنواع الأخرى، أظهر المحتوى الكامل.",
maxKeys: "الحد الأقصى لعدد المفاتيح",
maxKeysInfo: "لكي لا يتعطل GUI، فإننا نحدد الحد الأقصى لعدد المفاتيح.",
keyCount: (opts) => {
return `عدد المفاتيح: ${opts?.keyCount ?? 0}`;
},
label: {
animation: "استخدم الرسوم المتحركة",
noAnimation: "لا الرسوم المتحركة",
jsonFormatTwoSpace: "قم بتنسيق JSON بمسافتين",
jsonFormatFourSpace: "قم بتنسيق JSON بأربع مسافات",
formName: "إعدادات Redis",
searchModeClient: "وضع البحث عن العميل",
searchModeServer: "وضع البحث عن الخادم",
searchModeStartsWith: "البحث مع يبدأ مع الوضع",
searchModeIncludes: "البحث يشمل الوضع"
},
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: "القيمة"
},
error: {
streamTimestamp: "الطابع الزمني مطلوب، إما بتنسيق Redis أو *",
key: "المفتاح هو، على الأقل، حرف واحد",
hashKey: "يتكون مفتاح جدول التجزئة من حرف واحد على الأقل",
score: "مطلوب النتيجة المحددة التي تم فرزها",
value: "القيمة مطلوبة"
}
},
main: {
label: {
database: "DB"
}
}
},
page: {
search: {
title: "بحث",
index: "فهرس",
query: "استعلام",
results: "النتائج",
noIndex: "لم يتم العثور على فهارس",
createIndex: "إنشاء فهرس",
dropIndex: "حذف فهرس",
indexInfo: "معلومات الفهرس",
indexName: "اسم الفهرس",
prefix: "بادئة المفتاح (اختياري)",
fieldName: "اسم الحقل"
},
monitor: {
title: "المراقبة",
memory: "الذاكرة",
opsPerSec: "عمليات/ثانية",
clients: "العملاء",
blocked: "محظور",
hitsMisses: "معدل الإصابة",
networkIo: "إدخال/إخراج الشبكة",
slowLog: "السجل البطيء",
totalCommands: "الإجمالي",
expired: "منتهي الصلاحية",
evicted: "مطرود",
clientList: "قائمة العملاء",
topKeys: "أكبر المفاتيح حسب الذاكرة",
killClient: "إنهاء العميل",
clientKilled: "تم إنهاء العميل",
confirmKillClient: "هل أنت متأكد من إنهاء هذا العميل؟",
noKeys: "لا توجد مفاتيح",
rss: "RSS",
peak: "الذروة",
fragmentation: "التجزئة",
hitsAndMisses: "الإصابات / الأخطاء",
noClients: "لا يوجد عملاء"
},
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: "تصدير الكل"
},
overview: {
noConnected: "لا يوجد اتصال بـ Redis.",
overviewClients: "قم بإدراج المتصلين حسب عدد العملاء",
connectedCount: opt => {
if (opt.length === 1) {
return "1 عميل";
}
return `${opt.length} عملاء`;
}
},
key: {
label: {
key: "مفتاح",
encoding: "الترميز",
compression: "الضغط",
aiRateLimited: "تم الوصول إلى حد طلبات الذكاء الاصطناعي. حاول مرة أخرى لاحقًا أو استخدم مفتاح Groq API الخاص بك في الإعدادات.",
aiError: "فشل استعلام الذكاء الاصطناعي",
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: "مخطط",
info: "معلومات",
addPoint: "إضافة نقطة بيانات",
from: "من (ms أو -)",
to: "إلى (ms أو +)",
aggregation: "تجميع",
timeBucket: "دلو (ms)",
none: "لا شيء",
dataPoints: "نقاط البيانات",
labels: "التسميات",
rules: "القواعد",
retention: "الاحتفاظ",
timestamp: "الطابع الزمني",
value: "القيمة",
retentionHint: "0 = بدون انتهاء صلاحية، أو بالمللي ثانية",
duplicatePolicy: "سياسة التكرار",
labelsHint: "key1 value1 key2 value2",
timestampHint: "'*' يعني توليد تلقائي، أو طابع زمني بالمللي ثانية",
editAllHint: "نقطة بيانات واحدة لكل سطر: طابع_زمني قيمة (الطابع الزمني يمكن أن يكون * للتوليد التلقائي)",
autoSpread: "فاصل الانتشار التلقائي *",
formula: "صيغة",
formulaLinear: "خطي",
formulaRandom: "عشوائي",
formulaSawtooth: "سن المنشار",
formulaPoints: "النقاط",
formulaAmplitude: "السعة",
formulaOffset: "الإزاحة",
generate: "توليد",
exportChart: "تصدير PNG",
overlay: "تراكب المفاتيح",
overlayHint: "مفاتيح مفصولة بفاصلة",
mrangeFilter: "فلتر التسميات",
bulkMode: "إنشاء مجمع",
mrangeHint: "مثال sensor=temp"
}
},
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: {
type: "النوع",
format: "التنسيق",
loading: "جارٍ التحميل...",
years: "سنوات",
months: "أشهر",
days: "أيام",
year: "سنة",
month: "شهر",
day: "يوم",
second: "ثانية",
seconds: "ثوانٍ",
minute: "دقيقة",
minutes: "دقائق",
hour: "ساعة",
hours: "ساعات"
},
redisTypes: {
string: "String",
list: "List",
hash: "Hash table",
set: "Set",
zset: "Sorted set - zset",
stream: "Stream",
json: "JSON",
timeseries: "Time Series"
}
};
module.exports = strings;