إضافة tajweed_rules.py - بسم الله الرحمن الرحيم
هذا الالتزام موجود في:
72
tajweed_rules.py
Normal file
72
tajweed_rules.py
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
"""Tajweed Rules - أحكام التجويد"""
|
||||||
|
|
||||||
|
class TajweedRule:
|
||||||
|
def __init__(self, name_ar: str, name_en: str, description: str, example: str):
|
||||||
|
self.name_ar = name_ar
|
||||||
|
self.name_en = name_en
|
||||||
|
self.description = description
|
||||||
|
self.example = example
|
||||||
|
|
||||||
|
# أحكام النون الساكنة والتنوين
|
||||||
|
NOON_SAKINAH_RULES = [
|
||||||
|
TajweedRule(
|
||||||
|
"الإظهار", "Al-Izhar",
|
||||||
|
"إظهار النون الساكنة أو التنوين عند حروف الحلق (ء هـ ع ح غ خ)",
|
||||||
|
"مِنْ أَجْلِ - عَلِيمٌ حَكِيمٌ"
|
||||||
|
),
|
||||||
|
TajweedRule(
|
||||||
|
"الإدغام", "Al-Idgham",
|
||||||
|
"إدغام النون الساكنة أو التنوين في حروف (ي ر م ل و ن)",
|
||||||
|
"مِنْ رَبِّهِمْ - خَيْرٌ لَكُمْ"
|
||||||
|
),
|
||||||
|
TajweedRule(
|
||||||
|
"الإقلاب", "Al-Iqlab",
|
||||||
|
"قلب النون الساكنة أو التنوين ميماً عند الباء",
|
||||||
|
"مِنْ بَعْدِ - سَمِيعٌ بَصِيرٌ"
|
||||||
|
),
|
||||||
|
TajweedRule(
|
||||||
|
"الإخفاء", "Al-Ikhfa",
|
||||||
|
"إخفاء النون الساكنة أو التنوين عند باقي الحروف",
|
||||||
|
"مِنْ دُونِ - كِتَابٌ كَرِيمٌ"
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
||||||
|
# أحكام الميم الساكنة
|
||||||
|
MEEM_SAKINAH_RULES = [
|
||||||
|
TajweedRule("الإخفاء الشفوي", "Al-Ikhfa Ash-Shafawi", "إخفاء الميم الساكنة عند الباء", "عَلَيْهِمْ بِنَاءً"),
|
||||||
|
TajweedRule("الإدغام الشفوي", "Al-Idgham Ash-Shafawi", "إدغام الميم الساكنة في ميم مثلها", "لَهُمْ مَا"),
|
||||||
|
TajweedRule("الإظهار الشفوي", "Al-Izhar Ash-Shafawi", "إظهار الميم الساكنة عند باقي الحروف", "عَلَيْهِمْ وَلَا"),
|
||||||
|
]
|
||||||
|
|
||||||
|
# المدود
|
||||||
|
MUDOOD = [
|
||||||
|
TajweedRule("المد الطبيعي", "Al-Madd At-Tabi'i", "يمد بمقدار حركتين", "قَالَ - نُوحِيهَا"),
|
||||||
|
TajweedRule("المد المتصل", "Al-Madd Al-Muttasil", "يمد ٤-٥ حركات إذا جاء بعد حرف المد همزة", "جَاءَ - سُوءٌ"),
|
||||||
|
TajweedRule("المد المنفصل", "Al-Madd Al-Munfasil", "يمد ٤-٥ حركات إذا جاء الهمز منفصلاً", "إِنَّا أَنْزَلْنَاهُ"),
|
||||||
|
TajweedRule("المد اللازم", "Al-Madd Al-Lazim", "يمد ٦ حركات إذا جاء بعد حرف المد سكون أصلي", "الطَّامَّةُ"),
|
||||||
|
]
|
||||||
|
|
||||||
|
def check_noon_sakinah(word_before: str, word_after: str) -> list:
|
||||||
|
"""فحص قاعدة النون الساكنة بين كلمتين"""
|
||||||
|
throat_letters = {"ء", "هـ", "ه", "ع", "ح", "غ", "خ"}
|
||||||
|
idgham_letters = {"ي", "ر", "م", "ل", "و", "ن"}
|
||||||
|
|
||||||
|
if word_before.endswith("ن") and word_after:
|
||||||
|
first_letter = word_after[0]
|
||||||
|
if first_letter in throat_letters:
|
||||||
|
return ["الإظهار"]
|
||||||
|
elif first_letter in idgham_letters:
|
||||||
|
return ["الإدغام"]
|
||||||
|
elif first_letter == "ب":
|
||||||
|
return ["الإقلاب"]
|
||||||
|
else:
|
||||||
|
return ["الإخفاء"]
|
||||||
|
return []
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
print("📖 أحكام النون الساكنة والتنوين:")
|
||||||
|
for rule in NOON_SAKINAH_RULES:
|
||||||
|
print(f" {rule.name_ar}: {rule.example}")
|
||||||
|
print(f"\n📖 أحكام المدود:")
|
||||||
|
for rule in MUDOOD:
|
||||||
|
print(f" {rule.name_ar}: {rule.example}")
|
||||||
المرجع في مشكلة جديدة
حظر مستخدم