إذا لم يكن للمهارة دليل صالح dialog
أو locale
، وتحاول التحدث ببعض الحوارات باستخدام السلاسل داخل Skill ، على سبيل المثال
self.speak_dialog('say something')
ثم تفشل الطريقة حيث لم يتم تعيين dialog_renderer
:
File "/home/kris/mycroft-core/mycroft/skills/mycroft_skill/mycroft_skill.py", line 1102, in speak_dialog
self.speak(self.dialog_renderer.render(key, data),
AttributeError: 'NoneType' object has no attribute 'render'
إنشاء دليل فارغ dialog/en-us/
يحل المشكلة.
نظرًا لأن مؤلف المهارة لا يستخدم سلسلة حوار ، فإن التوقع هو أن الدليل غير مطلوب.
أو يمكن أن تقدم رسالة خطأ وصفية أكثر لهذه الحالة ، حيث قد تكون أيضًا قد أخطأت في كتابة اسم الدليل على سبيل المثال local/en_us
أسهل طريقة للتعامل مع هذا الأمر هي طريقة MycroftSkill.speak_dialog()
مما يجعلها شيئًا مثل
if self.dialog_renderer:
data = data or {}
self.speak(self.dialog_renderer.render(key, data),
expect_response, wait, meta={'dialog': key, 'data': data})
else:
self.log.warning('Dialog renderer doesn't exist, does the locale/dialog folder exists?')
self.speak(key, expected_response, wait, {})
سأحصل عليه إذا لم يمانع أحد
التعليق الأكثر فائدة
أسهل طريقة للتعامل مع هذا الأمر هي طريقة
MycroftSkill.speak_dialog()
مما يجعلها شيئًا مثل