رسائل الأخطاء
كل رسالة قد يعرضها Signal Lab عند حدوث فشل، مرتّبة حسب رمزها: هذا الرمز هو ما يقدّمه تقرير التشغيل وسطر الأوامر وواجهة API. تُستبدل القيم الموجودة بين الأقواس المعقوفة بما فشل.
api
| الرمز | الرسالة |
|---|---|
api.not_found | لا يوجد عنوان كهذا على الخادم — إصدارا الواجهة والخادم مختلفان |
api.run_invalid | تتعذّر قراءة طلب التشغيل |
api.run_source | يلزم تحديد التجربة مرة واحدة: مستند أو قالب |
api.template_unknown | لا يوجد قالب مضمّن باسم {name} |
auth
| الرمز | الرسالة |
|---|---|
auth.host | لا يستجيب هذا الخادم لذلك العنوان — يلزم فتحه باسمه الخاص |
auth.origin | جاء هذا الطلب من موقع آخر فرُفض |
auth.required | يلزم تسجيل الدخول إلى هذا الخادم أولًا |
broadcast
| الرمز | الرسالة |
|---|---|
broadcast.cidr_invalid | {value} ليست كتلة CIDR — الصيغة a.b.c.d/nn، مثل 192.168.1.0/24 |
broadcast.interface_invalid | {value} ليس عنوان IPv4 — يُدخل عنوان الواجهة، أو يُترك الحقل فارغًا لأي واجهة |
broadcast.ipv6 | لا يوجد بث في IPv6 — يُستخدم البث المتعدد بدلًا منه |
broadcast.join_failed | يتعذّر الانضمام إلى مجموعة البث المتعدد {group} |
broadcast.not_broadcast | {target} ليس عنوان بث — الصيغة 255.255.255.255:port أو x.x.x.255:port |
broadcast.not_multicast | {target} ليس مجموعة بث متعدد — يُستخدم عنوان من 224.0.0.0 إلى 239.255.255.255 |
broadcast.port_shared | {target} مستخدم بالفعل — يلزم تفعيل «مشاركة المنفذ» للاستماع بجانبه |
broadcast.prefix_invalid | /{value} ليس طول بادئة — القيم المقبولة من /0 إلى /32 |
broadcast.rate_invalid | يجب أن يكون معدل المنارة أكبر من 0 |
broadcast.rate_limit | {pps} حزمة/ث عبر {targets} هدف تتجاوز الحد البالغ {max} حزمة/ث — يلزم خفض المعدل أو تضييق الهدف |
broadcast.reply_missing | لا يوجد رد لإرساله — يلزم تعيين رد، أو إيقاف «الرد على طلبات الاكتشاف» |
broadcast.sweep_port | يلزم تعيين المنفذ المراد تمشيطه |
broadcast.sweep_too_large | تضم /{prefix} عناوين عددها {count}، والحد الأقصى للتمشيط {max} من المضيفات — يلزم تضييقها إلى /{limit} أو كتلة أصغر |
broadcast.target_required | يلزم إدخال هدف واحد على الأقل |
check
| الرمز | الرسالة |
|---|---|
check.body_missing | لا تحتوي الاستجابة على {text} |
check.body_truncated | الاستجابة ({bytes} بايت) أطول من 256 KiB المحتفظ بها، لذا تعذّر التحقق من النص |
check.header_mismatch | قيمة الترويسة {name} هي {actual}، ولا تحتوي على {text} |
check.header_missing | لا تحتوي الاستجابة على الترويسة {name} |
check.latency_failed | استغرقت الاستجابة {actual} ms، متجاوزةً الحد البالغ {limit} ms |
check.no_response | لا توجد استجابة HTTP قبل هذه الخطوة — يلزم وضع طلب HTTP قبلها على كل مسار |
check.status_failed | المتوقع HTTP {expected}، والمستلم {actual} |
check.value_failed | المتوقع: {value} {op} {expected} |
cli
| الرمز | الرسالة |
|---|---|
cli.bind_one | يعيّن --bind عنوان محاكٍ واحد؛ وقد أُعطيت عدة محاكيات |
cli.emulate_nothing | لا شيء للمحاكاة: لا تحتوي الملفات على أي محاكٍ |
cli.emulator_unknown | {name} ليس ملفًا، ولا يحتوي {path} على محاكٍ بهذا المعرّف أو الاسم |
cli.file_unknown | {name} ليس ملفًا ولا قالبًا مضمّنًا — يسردها الأمر signallab templates |
cli.header_invalid | {value} ليست ترويسة — الصيغة 'Name: value' |
cli.library_missing | لا توجد مكتبة في {path} — ينشئها التطبيق عند أول تشغيل؛ أو حدّد مكتبة أخرى بالخيار --library |
cli.matrix_conflict | {name} معيّن مرتين — عبر --param والمصفوفة، أو عبر --matrix والملف؛ يلزم تعيينه مرة واحدة |
cli.matrix_file_invalid | {path} ليس مصفوفة: كائن من NAME: [values]، أو قائمة كائنات من NAME: value |
cli.matrix_invalid | {value} ليس بصيغة NAME=V1,V2 |
cli.matrix_too_large | {n} تركيبة — الحد الأقصى {max} من أمر واحد |
cli.matrix_too_wide | حاصل ضرب {axes} محور يتجاوز أي عدد — الحد الأقصى للتركيبات {max} من أمر واحد |
cli.matrix_unknown | --matrix {name}: لا توجد بين التجارب المعطاة تجربة لها معامل بهذا الاسم |
cli.matrix_value_invalid | {name}: قيمة المصفوفة نص أو رقم أو true/false |
cli.osc_arg_invalid | {value} ليست وسيطة OSC — الصيغ المقبولة: i:3 أو f:0.5 أو d:1.5 أو h:64 أو s:text أو b:hex أو T أو F أو N |
cli.param_invalid | {value} ليس بصيغة NAME=VALUE |
cli.server_ended | انتهى الرد من {url} قبل انتهاء التشغيل |
cli.server_invalid | {url} ليس عنوان خادم — مثال صالح: http://127.0.0.1:1430 |
cli.server_reply | ردّ {url} بما لا يصدر عن Signal Lab (HTTP {status}) |
cli.server_unreachable | يتعذّر الوصول إلى الخادم على {url} |
cli.signal_ambiguous | عدة إشارات تحمل الاسم {name} — يلزم تحديد إحداها بمعرّفها: {ids} |
cli.signal_unknown | لا توجد إشارة {name} في {path} |
cli.status_unexpected | كانت الاستجابة {actual}، وليست {expected} |
cli.token_empty | ملف الرمز المميز {path} فارغ |
command
| الرمز | الرسالة |
|---|---|
command.args_invalid | تعذّر على المحرك قراءة وسائط {name} — إصدارا الواجهة والمحرك مختلفان |
command.json_required | لا يقبل الخادم الأوامر إلا بصيغة JSON |
command.reply_invalid | تعذّر على المحرك ترميز رده |
command.unknown | لا يحتوي المحرك على الأمر {name} — الواجهة أحدث من المحرك |
compare
| الرمز | الرسالة |
|---|---|
compare.not_numbers | يجب أن يكون كل من {value} و{expected} رقمًا لإجراء هذه المقارنة |
details
| الرمز | الرسالة |
|---|---|
details | التفاصيل التقنية |
doc
| الرمز | الرسالة |
|---|---|
doc.connection_duplicate | الوصلة {from} → {to} مكررة |
doc.connection_invalid | الوصلة {from} → {to} تؤدي إلى عقدة غير موجودة أو تعود إلى العقدة نفسها |
doc.name_required | يلزم إعطاء التجربة اسمًا |
doc.node_count | تضم التجربة من 1 إلى {max} من العقد |
doc.node_id_duplicate | عقدتان تشتركان في المعرّف {id} |
doc.node_id_empty | لإحدى العقد معرّف فارغ |
doc.port_invalid | مخرج غير معروف {port} |
doc.position_invalid | موضع العقدة غير صالح |
doc.start_end_count | تحتاج التجربة إلى «بداية» واحدة و«نهاية» واحدة بالضبط |
doc.version_unsupported | إصدار الملف {version} غير مدعوم؛ يقرأ هذا الإصدار من Signal Lab الإصدار {supported} |
emulator
| الرمز | الرسالة |
|---|---|
emulator.accept_failed | توقف قبول الاتصالات على {target} بسبب خطأ |
emulator.arg_value | {value} ليست قيمة من النوع {type} |
emulator.args_too_many | الحد الأقصى للوسائط {max} |
emulator.bind_taken | {target} مشغول بمحاكٍ آخر في هذه التجربة ({other}) |
emulator.body_failed | تعذّرت قراءة متن الطلب |
emulator.body_too_large | متن الطلب أكبر من {max} كيلوبايت |
emulator.busy | عدد الردود المنتظرة يتجاوز {max} — فأُسقط هذا الرد |
emulator.conditions_too_many | الحد الأقصى للشروط {max} |
emulator.failed | توقف المحاكي على نحو غير متوقع |
emulator.header_value_invalid | ليست قيمة ترويسة صالحة — لا يجوز أن تحتوي على فواصل أسطر |
emulator.headers_too_many | الحد الأقصى للترويسات {max} |
emulator.mqtt_client_id | رُفض عميل بلا معرّف طلب الاحتفاظ بجلسته |
emulator.mqtt_login | رُفض {client}: اسم المستخدم أو كلمة المرور غير صحيحة |
emulator.mqtt_password_alone | لا يستطيع MQTT 3.1.1 نقل كلمة مرور دون اسم مستخدم، فلن يتمكن أي عميل من الاتصال: يلزم تعيين اسم مستخدم أيضًا |
emulator.mqtt_protocol | رُفض عميل يتحدث {protocol} بالمستوى {level}: هذا الوسيط يتحدث MQTT 3.1.1 (المستوى 4) |
emulator.name_unknown | اسم غير معروف {{{name}}} — يقرأ الرد {{request…}} والمعاملات |
emulator.node_unknown | لا يوجد محاكٍ {id} في هذه التجربة |
emulator.not_in_run | المحاكي {id} ليس جزءًا من هذا التشغيل |
emulator.not_running | المحاكي #{id} لا يعمل |
emulator.params_only | النص والمعاملات فقط هنا: تُثبَّت القيمة عند بدء المحاكي، قبل وصول أي شيء |
emulator.path_param | {value} ليس اسم مقطع — الصيغة :name بأحرف وأرقام و_ |
emulator.path_rest | لا يمكن أن تكون * إلا المقطع الأخير بكامله، كما في /files/* |
emulator.path_slash | يبدأ مسار URL بـ / |
emulator.response_required | يحتاج المسار إلى استجابة واحدة على الأقل |
emulator.responses_too_many | الحد الأقصى للاستجابات {max} |
emulator.rules_too_many | الحد الأقصى للقواعد {max} |
emulator.secret_unsupported | لا يستطيع المحاكي قراءة الأسرار |
emulator.weights_zero | يجب أن يكون لاستجابة واحدة على الأقل وزن أكبر من 0 |
emulators
| الرمز | الرسالة |
|---|---|
emulators.encode | تعذّرت كتابة مكتبة المحاكيات بصيغة JSON |
emulators.json_invalid | {path} ليس ملف محاكيات صالحًا: خطأ JSON في السطر {line}، العمود {column} — يلزم إصلاح الملف أو إزالته |
extract
| الرمز | الرسالة |
|---|---|
extract.header_missing | لا تحتوي الاستجابة على الترويسة {name} |
extract.json_missing | {path} غير موجود في الاستجابة |
extract.no_match | /{pattern}/ لم يطابق متن الاستجابة |
extract.not_json | متن الاستجابة ليس JSON |
extract.truncated | الاستجابة ({bytes} بايت) أطول من 256 KiB المحتفظ بها، لذا لا يمكن قراءة القيمة بموثوقية |
feedback
| الرمز | الرسالة |
|---|---|
feedback.disabled | لا تُستقبل الملاحظات حاليًا — يمكن المراسلة على info@proanima.net |
feedback.email_invalid | هذا ليس عنوان بريد إلكتروني |
feedback.failed | ردّت خدمة الملاحظات بـ HTTP {status} |
feedback.file_too_large | حجم {name} أكبر من {max_mb} ميغابايت |
feedback.file_type | {name}: يجب أن تكون لقطة الشاشة PNG أو JPEG أو WebP أو GIF، والسجل نصًا |
feedback.invalid | لم تقبل خدمة الملاحظات النموذج |
feedback.message_required | يلزم كتابة رسالة أولًا |
feedback.message_too_long | الرسالة أطول من الحد البالغ {max} من الأحرف |
feedback.rate_limited | رسائل كثيرة جدًا من هذا العنوان حاليًا — يُرجى المحاولة مجددًا بعد {retry_after_s} ث |
feedback.send_failed | تعذّر على خدمة الملاحظات تمرير الرسالة إلى خادم البريد؛ يُرجى المحاولة لاحقًا (المرجع {id}) |
feedback.too_large | الحجم الإجمالي أكبر من {max_mb} ميغابايت |
feedback.too_many_files | الحد الأقصى للسجلات {max} |
file
| الرمز | الرسالة |
|---|---|
file.encode | تعذّرت كتابة التجربة بصيغة JSON |
file.io | تتعذّر قراءة {path} أو الكتابة فيه |
file.json_invalid | ليس ملف تجربة صالحًا: خطأ JSON في السطر {line}، العمود {column} |
file.not_found | {path} ليس ملفًا في مجلد بيانات الخادم |
file.too_large | الحد الأقصى لحجم ملف التجربة {max} MiB |
firewall
| الرمز | الرسالة |
|---|---|
firewall.declined | لم تُمنح صلاحيات المسؤول، لذا لم يتغير جدار الحماية |
firewall.failed | تعذّرت قراءة قواعد جدار الحماية أو تغييرها |
firewall.server | يُضبط جدار حماية الخادم على الخادم نفسه: يلزم تشغيل signallab firewall allow هناك، أو مراجعة مسؤوله |
firewall.unsupported | لا يوجد هنا جدار حماية خاص بكل برنامج لتغييره — يلزم فتح المنافذ في ufw أو firewalld |
graph
| الرمز | الرسالة |
|---|---|
graph.cycle | هذه العقدة جزء من دائرة مغلقة؛ ولا يُسمح بالعودة إليها إلا من متن «حلقة» |
graph.needs_http | يلزم وجود طلب HTTP قبلها على كل مسار |
graph.outputs_required | يلزم وصل المخارج المطلوبة |
graph.port_unexpected | المخرج {port} لا ينتمي إلى هذه العقدة |
graph.start_input | لا يمكن أن يكون لـ«البداية» مدخل |
graph.unreachable | لا يمكن الوصول إليها من «البداية» |
hex
| الرمز | الرسالة |
|---|---|
hex.empty | لا بايتات لإرسالها — يلزم إدخال أزواج من أرقام hex مثل de ad be ef |
hex.invalid | {value} ليست بايتات hex — تُكتب أزواجًا من الأرقام مثل de ad be ef |
http
| الرمز | الرسالة |
|---|---|
http.client_failed | تعذّر بدء عميل HTTP |
http.digest_invalid | طلب الخادم Digest دون realm أو nonce |
http.digest_not_offered | ردّ الخادم بـ 401 دون طلب Digest |
http.digest_other_origin | أُعيد توجيه الطلب إلى {origin} الذي طلب Digest — ولا يُجاب إلا الأصل الذي يسمّيه الطلب |
http.digest_unsupported | طلب الخادم Digest مع {algorithm}، وهو ما لا يدعمه Signal Lab (يدعم MD5 وSHA-256) |
http.duration_invalid | يجب أن تكون المدة 0 ثانية أو أكثر |
http.rate_invalid | يجب أن يكون المعدل 0 أو من {min} إلى {max} طلب/ث |
impair
| الرمز | الرسالة |
|---|---|
impair.bind_taken | {target} مخصص بالفعل لـ {other}: لا يمكن لمقبسين في التشغيل مشاركة منفذ |
impair.loop | ستعود حزم المرحّل إليه عبر {target} وتدور بلا نهاية — يلزم توجيه هدفه إلى الجهاز |
impair.not_running | عقدة «إضعاف» {id} ليست جزءًا من هذا التشغيل |
impair.relay_unknown | لا توجد عقدة «إضعاف» {id} في هذه التجربة |
inspect
| الرمز | الرسالة |
|---|---|
inspect.empty | الالتقاط فارغ — لا شيء لحفظه |
inspect.frame_gone | لم يعد الإطار #{seq} في الالتقاط: حلّت محله إطارات أحدث |
inspect.no_payload | سجّل الإطار #{seq} حجمه فقط، لا بايتاته |
json_path
| الرمز | الرسالة |
|---|---|
json_path.invalid | {path} ليس مسار JSON — الصيغ المقبولة: $.field أو $.items[0] أو $["a b"] |
load
| الرمز | الرسالة |
|---|---|
load.nothing_planned | ملف التعريف هذا لا يرسل أي طلبات |
load.spike_outside | يجب أن تنتهي الطفرة ضمن المدة |
load.steps_out_of_range | يجب أن يكون معدل كل درجة من 0 إلى {max} طلب/ث |
load.threshold | بلغ {metric} {actual}، والعتبة {op} {value} |
load.threshold_value | تحتاج العتبة إلى رقم، 0 أو أكثر |
load.thresholds_too_many | الحد الأقصى للعتبات {max} |
load.too_long | تستغرق الدرجات وقتًا أطول من الحد المسموح للتشغيل ({seconds} ث) |
loop
| الرمز | الرسالة |
|---|---|
loop.body_entered | لا يجوز الدخول إلى متن الحلقة إلا عبر مخرج «المتن» الخاص بها |
loop.body_leaves | داخل متن الحلقة يجب أن يؤدي كل مخرج إلى ما يليه في المتن أو أن يعود إلى الحلقة |
loop.body_parallel | داخل متن الحلقة يكون للمخرج وصلة واحدة: تُنفَّذ الدورة كفرع واحد |
loop.body_unsupported | لا يمكن أن تكون «البداية» و«النهاية» والفروع المتوازية وعقد الدمج والحلقات الأخرى داخل متن حلقة |
loop.limit | الدورات: {max}؛ لم يتحقق شرط الخروج قط (يلزم وصل «الحد» للمتابعة) |
loop.no_return | لا شيء على «المتن» يعود إلى هذه الحلقة |
mqtt
| الرمز | الرسالة |
|---|---|
mqtt.client_id_required | يلزم إدخال معرّف العميل — يرفض الوسطاء المعرّف الفارغ |
mqtt.filter_required | يلزم إضافة مرشّح مواضيع واحد على الأقل |
mqtt.no_answer | قبل {broker} الاتصال لكنه لم يرد في الوقت المحدد — هل هو وسيط MQTT؟ |
mqtt.not_connected | الاتصال #{id} غير مفتوح — يلزم الاتصال بالوسيط أولًا |
mqtt.protocol | ردّ {broker} بشيء غير MQTT 3.1.1 |
mqtt.refused | رفض {broker} الاتصال (رمز الإرجاع {code}) |
mqtt.refused_client_id | رفض {broker} معرّف العميل — يلزم اختيار معرّف آخر |
mqtt.refused_credentials | رفض {broker} اسم المستخدم أو كلمة المرور |
mqtt.refused_not_authorized | لم يأذن {broker} لهذا العميل — يلزم التحقق من قواعد الوصول لديه |
mqtt.refused_protocol | لا يقبل {broker} عملاء MQTT 3.1.1 |
mqtt.refused_unavailable | {broker} غير متاح حاليًا — يُرجى المحاولة لاحقًا |
mqtt.subscribe_refused | رفض {broker} الاشتراك في {filter} |
mqtt.topic_invalid | لا يمكن النشر إلى هذا الموضوع |
mqtt.topic_required | يلزم إدخال موضوع للنشر إليه |
name
| الرمز | الرسالة |
|---|---|
name.no_value | لا قيمة لـ {name} |
name.not_on_every_path | {{{name}}} غير معيّن على كل المسارات قبل هذه الخطوة |
name.unknown | اسم غير معروف {{{name}}} — يلزم إضافة معامل أو استخراج متغير |
netsim
| الرمز | الرسالة |
|---|---|
netsim.not_running | المرحّل {id} لم يعد يعمل |
node
| الرمز | الرسالة |
|---|---|
node.bind_invalid | {value} ليس عنوان استماع — الصيغة IP:port، مثل 0.0.0.0:9001 |
node.header_invalid | {value} ليس اسم ترويسة صالحًا |
node.load_alone | الحمل يحل محل التكرار وإعادة المحاولة: يلزم إيقافهما |
node.load_unsupported | لا يمكن تشغيل سوى طلب HTTP تحت الحمل |
node.method_invalid | {value} ليست طريقة HTTP |
node.not_found | العقدة {id} لم تعد موجودة |
node.osc_address | تبدأ عناوين OSC بـ / ({value}) |
node.params_only | لا يمكن استخدام سوى المعاملات هنا — فالتشغيل يشترك قبل خطوته الأولى |
node.range | يجب أن تكون من {min} إلى {max} |
node.repeat_too_long | يستغرق التكرار وقتًا أطول من الحد المسموح للتشغيل ({seconds} ث) |
node.repeat_too_many | عدد الإرسالات يتجاوز {max}: يلزم إطالة الفاصل أو تقصير المدة |
node.repeat_unsupported | لا يُتاح التكرار إلا للخطوات التي ترسل |
node.required | مطلوب |
node.retry_unsupported | لا تُتاح إعادة المحاولة إلا للخطوات التي ترسل أو تستمع |
node.rules_too_many | الحد الأقصى لقواعد الوسائط {max} |
node.target_invalid | {value} ليس عنوانًا مع منفذ، مثل 127.0.0.1:9000 |
node.too_long | طويل جدًا: الحد الأقصى {max} |
node.topic_filter | {value} ليس مرشّح مواضيع: + يمثل مستوى كاملًا، و# يمثل المستوى الأخير بكامله فقط |
node.topic_wildcard | لا يمكن أن يحتوي موضوع النشر على حرفي البدل + أو # |
node.url_invalid | {value} ليس URL من نوع http:// أو https:// |
osc
| الرمز | الرسالة |
|---|---|
osc.packet_malformed | حزمة OSC مشوّهة ({bytes} بايت) |
osc.pattern_char | «{char}» غير مسموح به هنا في عنوان OSC |
osc.pattern_empty_segment | جزء فارغ بين الشرطتين المائلتين |
osc.pattern_empty_set | مجموعة [ ] فارغة |
osc.pattern_range | النطاق {range} معكوس |
osc.pattern_slash | يبدأ نمط عنوان OSC بـ / |
osc.pattern_too_long | يتجاوز نمط العنوان الحد الأقصى البالغ {max} من الأحرف |
osc.pattern_unclosed | [ أو { غير مغلق |
param
| الرمز | الرسالة |
|---|---|
param.duplicate | المعامل {name} معرّف مرتين |
param.name_invalid | يجب أن يبدأ اسم المعامل «{name}» بحرف أو _ وألا يحتوي إلا على أحرف وأرقام و_ |
param.name_reserved | «{name}» محجوز ولا يمكن استخدامه اسمًا لمعامل |
param.too_large | حجم المعامل {name} أكبر من {max} KiB |
param.unknown | معامل غير معروف {name} |
params
| الرمز | الرسالة |
|---|---|
params.too_many | الحد الأقصى للمعاملات {max} |
position
| الرمز | الرسالة |
|---|---|
position | الموضع {position} |
profile
| الرمز | الرسالة |
|---|---|
profile.active_missing | ملف التعريف النشط {name} غير موجود |
profile.duplicate | ملف التعريف {name} معرّف مرتين |
profile.name_invalid | طول اسم ملف التعريف من 1 إلى {max} من الأحرف |
profile.unknown_param | يعيّن ملف التعريف {profile} القيمة {name}، وهي ليست معاملًا |
profile.values_too_many | يعيّن ملف التعريف {profile} أكثر من {max} من القيم |
profiles
| الرمز | الرسالة |
|---|---|
profiles.too_many | الحد الأقصى لملفات التعريف {max} |
regex
| الرمز | الرسالة |
|---|---|
regex.invalid | {pattern} ليس تعبيرًا نمطيًا صالحًا |
run
| الرمز | الرسالة |
|---|---|
run.join_waiting | لا يزال «دمج الفروع» ينتظر فروعًا عددها {count} — لم يُتَّبع أحد الاتصالات الواردة إليه قط، مثلًا لأن فرعًا سلك مسارًا آخر |
run.limit_range | يمكن أن يستغرق التشغيل من 1 إلى {max} ثانية |
run.no_end | توقف التشغيل قبل الوصول إلى «النهاية» |
run.node_missing | العقدة {id} مفقودة |
run.not_a_check | هذه العقدة ليست عقدة تحقق |
run.not_a_wait | هذه العقدة ليست عقدة انتظار |
run.not_an_action | هذه العقدة لا ترسل ولا تستمع |
run.override_unknown | يعيّن «تشغيل بقيم…» القيمة {name}، وهي ليست معاملًا |
run.timeout | استغرق التشغيل أكثر من {seconds} ث فأُوقف |
runs
| الرمز | الرسالة |
|---|---|
runs.name_invalid | «{name}» ليس تقرير تشغيل |
runs.not_found | لا يوجد تشغيل «{name}»: أُزيل تقريره |
scan
| الرمز | الرسالة |
|---|---|
scan.host_required | يلزم إدخال المضيف المراد مسحه |
secret
| الرمز | الرسالة |
|---|---|
secret.empty | لا يمكن أن يكون السر فارغًا |
secret.missing | السر {name} غير محفوظ على هذا الكمبيوتر — يُعيَّن في المعاملات → الأسرار |
secret.name_invalid | يجب أن يبدأ اسم السر «{name}» بحرف أو ، وألا يحتوي إلا على أحرف وأرقام و، وألا يتجاوز {max} من الأحرف |
secret.read_only | الأسرار للقراءة فقط هنا: يُعيَّن {name} على الخادم (SIGNALLAB_SECRET_{name}، أو ملف باسم {name} في مجلد الأسرار لديه) |
secret.store | فشل مخزن بيانات الاعتماد في النظام مع {name} |
secret.too_large | الحد الأقصى لحجم السر {max} KiB |
secret.unsupported | تُحفظ الأسرار في Windows Credential Manager، وهو غير متوفر في هذا النظام |
seed
| الرمز | الرسالة |
|---|---|
seed.range | يجب أن تكون البذرة من 0 إلى {max} |
show
| الرمز | الرسالة |
|---|---|
show | عرض |
signals
| الرمز | الرسالة |
|---|---|
signals.encode | تعذّرت كتابة مكتبة الإشارات بصيغة JSON |
signals.json_invalid | {path} ليس مكتبة إشارات صالحة: خطأ JSON في السطر {line}، العمود {column} — يلزم إصلاح الملف أو إزالته |
socket
| الرمز | الرسالة |
|---|---|
socket.option_failed | لم يقبل النظام خيار المقبس {option} |
template
| الرمز | الرسالة |
|---|---|
template.arg_empty | وسيطة فارغة |
template.arg_integer | {function}: {value} ليس عددًا صحيحًا |
template.arg_invalid | يجب وضع الوسيطة {value} بين علامتي اقتباس |
template.arg_number | {function}: {value} ليس رقمًا |
template.arg_quote | علامة اقتباس غير مغلقة في الوسائط |
template.args_pick | تحتاج pick(…) إلى خيار واحد على الأقل |
template.args_random_float | تأخذ random_float(min, max[, digits]) وسيطتين أو 3 وسائط |
template.args_random_int | تأخذ random_int(min, max) وسيطتين |
template.args_uuid | لا تأخذ uuid() أي وسائط |
template.bad_call | {text} ليس استدعاء دالة صالحًا |
template.bad_name | {text} ليس اسمًا صالحًا |
template.bad_path | {text}: مسار غير صالح — الصيغ المقبولة: .field أو [0] أو ["key"] |
template.digits | تأخذ random_float من 0 إلى {max} من الخانات العشرية |
template.empty | {{ }} فارغ |
template.needs_name | يحتاج {head} إلى اسم: {head}.NAME |
template.no_field | لا يحتوي {name} على الحقل {path} |
template.node_fields | لا يحتوي node إلا على node.id |
template.now_fields | لا يحتوي now إلا على now.iso |
template.range | {function}: يجب أن يكون min {min} أقل من max {max} |
template.run_fields | لا يحتوي run إلا على run.id وrun.seed |
template.unclosed | {{ غير مغلق |
template.unknown_function | دالة غير معروفة {name}() |
transport
| الرمز | الرسالة |
|---|---|
transport.address_in_use | {target} مستخدم بالفعل من قبل برنامج آخر |
transport.address_unavailable | {target} ليس عنوانًا لهذا الكمبيوتر |
transport.denied | لم يسمح النظام أو جدار حماية بالوصول إلى {target} |
transport.dns | تتعذّر ترجمة {target} — يلزم التحقق من اسم المضيف |
transport.failed | فشل الإرسال إلى {target} |
transport.refused | رفض {target} الاتصال — لا شيء يستمع على ذلك المنفذ |
transport.reset | أغلق {target} الاتصال |
transport.target_invalid | {target} ليس عنوانًا صالحًا |
transport.timeout | لم يصل رد من {target} في الوقت المحدد |
transport.tls | تعذّر إنشاء اتصال آمن بـ {target} (الشهادة أو TLS) |
transport.unreachable | لا يمكن الوصول إلى {target} — يلزم التحقق من الشبكة والعنوان |
unknown
| الرمز | الرسالة |
|---|---|
unknown | خطأ غير متوقع في المحرك ({code}) |
variable
| الرمز | الرسالة |
|---|---|
variable.name_invalid | يجب أن يبدأ اسم المتغير «{name}» بحرف أو _ وألا يحتوي إلا على أحرف وأرقام و_ |
variable.name_reserved | «{name}» محجوز ولا يمكن استخدامه اسمًا لمتغير |
variable.shadows_param | للمتغير {name} الاسم نفسه الذي لأحد المعاملات |
wait
| الرمز | الرسالة |
|---|---|
wait.bind_failed | يتعذّر الاستماع على {target} |
wait.not_listening | لا استماع على {target} |
wait.receive_failed | توقف الاستماع على {target} بسبب خطأ |
wait.timeout | لا رسالة مطابقة خلال {ms} ms (وصلت {unmatched} رسالة أخرى على {target}) |
ws
| الرمز | الرسالة |
|---|---|
ws.close_code | {code} ليس رمز إغلاق يرسله العميل — يُستخدم 1000، أو 3000–4999 للرموز الخاصة بالتطبيق |
ws.closed | اتصال WebSocket مغلق ({code}) |
ws.connection_after | {id} لا تأتي قبل هذه الخطوة — وهي التي تفتح الاتصال الذي تستخدمه هذه الخطوة |
ws.connection_unknown | {id} ليست عقدة «اتصال WebSocket» في هذه التجربة |
ws.handshake_failed | فشلت ترقية WebSocket مع {url} |
ws.handshake_status | ردّ {url} بـ HTTP {status} بدلًا من التحول إلى WebSocket |
ws.header_invalid | لا يمكن إرسال الترويسة {name} مع الترقية |
ws.message_too_large | الحد الأقصى لحجم رسالة WebSocket هو {max} بايت |
ws.not_connected | لا يوجد اتصال WebSocket مفتوح {id} |
ws.payload_required | يلزم إدخال الرسالة نصًا أو بايتات hex |
ws.protocol_error | انقطع الاتصال مع {url}: لم يلتزم الخادم ببروتوكول WebSocket |
ws.protocol_invalid | {value} ليس اسم بروتوكول فرعي: لا مسافات ولا فواصل ولا شرطات مائلة |
ws.subprotocol_refused | لم يقبل {url} أيًّا من البروتوكولات الفرعية المعروضة |
ws.url_invalid | {url} ليس عنوان WebSocket — الصيغة ws://host:port/path أو wss://… |
الحقول
الاسم الذي تُطلقه الرسالة على الحقل الذي تتحدث عنه.
| الحقل | الاسم |
|---|---|
address | العنوان |
argument | الوسيطة |
attempts | المحاولات |
auth | المصادقة |
bind | الاستماع على |
body | المتن |
broker | الوسيط |
burst_length | طول الدفعة |
burst_start | فقد على دفعات |
code | رمز الإغلاق |
condition | الشرط |
conditions | الشروط |
connection | الاتصال |
corrupt | التلف |
delay_ms | التأخير |
duplicate | الازدواج |
duration_s | المدة |
emulator | المحاكي |
expected | القيمة المتوقعة |
expected_text | النص المتوقع |
fallback | الطلبات التي لا يأخذها أي مسار |
greeting | التحية |
header_name | اسم الترويسة |
header_value | قيمة الترويسة |
headers | الترويسات |
hex | بايتات hex |
host | المضيف |
jitter_ms | التذبذب |
json_path | مسار JSON |
latency_ms | زمن الانتقال |
listen | الاستماع على |
load | الحمل |
load_base | المعدل الأساسي |
load_concurrency | التزامن |
load_duration | المدة |
load_every | طول الدرجة |
load_from | من |
load_peak | معدل الذروة |
load_rate | المعدل |
load_spike | الطفرة |
load_step | الدرجة |
load_steps | الدرجات |
load_to | إلى |
loop_max | الدورات |
loss | فقد الحزم |
max_ms | الحد الزمني |
message | الرسالة |
method | الطريقة |
ms | المدة |
name | الاسم |
outage_down | مدة التعطل |
outage_up | مدة العمل |
password | كلمة المرور |
path | مسار URL |
pattern | النمط |
payload | الحمولة |
port | المنفذ |
profile_name | اسم ملف التعريف |
protocols | البروتوكولات الفرعية |
qos | QoS |
rate | المعدل |
rate_kbps | عرض النطاق |
reason | السبب |
relay | الإضعاف |
reorder | إعادة الترتيب |
repeat | التكرار |
repeat_count | عدد الإرسالات |
repeat_duration | مدة التكرار |
repeat_interval | الفاصل الزمني |
repeat_jitter | التذبذب |
reply | الرد |
reply_address | عنوان الرد |
reply_arg | وسيطة الرد |
reply_args | وسائط الرد |
reply_bind | استقبال الرد على |
reply_pattern | نمط الرد |
reply_payload | حمولة الرد |
reply_topic | موضوع الرد |
reset | إعادة تعيين الاتصال |
responses | الاستجابات |
retained | الرسائل المحتفظ بها |
retry | إعادة المحاولة |
retry_delay | التوقف بين المحاولات |
rule | القاعدة |
rule_value | قيمة القاعدة |
rules | القواعد |
stall | نصف مفتوح |
status | الحالة |
target | الهدف |
threshold | العتبة |
thresholds | العتبات |
timeout_ms | المهلة |
to | الرد إلى |
token | الرمز المميز |
topic | الموضوع |
url | URL |
username | اسم المستخدم |
value | القيمة |
variable | المتغير |
weight | الوزن |