Islamic_clock / sky_simulation_registry.json
Asem75's picture
Upload 7 files
b6d4fb0 verified
Raw History Blame Contribute Delete
12.7 kB
{
"schema_name": "islamic_clock_celestial_simulation_registry",
"schema_version": "1.2.0",
"registry_id": "celestial_simulation_registry",
"project": "ساعة المسلم / الخط الزمني الروحي",
"purpose": "إعدادات العرض البصري لمحاكاة السماء والقبلة. لا يحتوي على أحكام فقهية أو مواقيت صلاة.",
"ownership": {
"owns": [
"ألوان السماء حسب ارتفاع الشمس",
"حساسية محاكاة القبلة البصرية",
"أحجام رموز الشمس والقمر والكعبة في العرض",
"نطاقات ظهور العناصر على الشاشة",
"إعدادات ونصوص إتاحة توجيه القبلة والنطق والاهتزاز",
"أطوار القمر الاحتياطية وعتبات رسمه وألوانه",
"إسقاط العناصر على الشاشة وعتبات مراحل السماء",
"نصوص عناوين العناصر ورسائل البوصلة الأساسية"
],
"does_not_own": [
"حساب مواقيت الصلاة",
"الأحكام الفقهية",
"حدود النهي والاستحباب",
"محتوى الأذكار أو العبادات",
"عوامل الظل للعصر (تأتي من fiqh_time_registry)"
]
},
"sky_color_model": {
"driver": "solar_altitude_deg",
"continuous_interpolation": true,
"description": "لون السماء ينتقل تدريجيًا مع ارتفاع الشمس، ولا يقفز بين الليل والنهار.",
"gradient_stops": [
{
"at": -18,
"label": "ليل فلكي",
"color": "#071326"
},
{
"at": -12,
"label": "فجر/شفق عميق",
"color": "#15284b"
},
{
"at": -6,
"label": "شفق مدني",
"color": "#4b5f91"
},
{
"at": -1,
"label": "قرب الأفق",
"color": "#e08a5b"
},
{
"at": 4,
"label": "شروق/غروب",
"color": "#f4b46a"
},
{
"at": 15,
"label": "صباح",
"color": "#84c8f5"
},
{
"at": 45,
"label": "نهار",
"color": "#55b7ef"
},
{
"at": 75,
"label": "شمس مرتفعة",
"color": "#3fa7e5"
}
]
},
"objects": {
"sun": {
"visible_below_horizon_deg": -3,
"size_min_px": 26,
"size_max_px": 48
},
"moon": {
"visible_below_horizon_deg": -5,
"size_min_px": 22,
"size_max_px": 40,
"show_phase": true
},
"kaaba": {
"alignment_threshold_deg": 4,
"near_alignment_threshold_deg": 12,
"visible_when_compass_enabled": true
},
"shadow": {
"object_height_unit": 1,
"show_one_shadow": true,
"show_two_shadows": true
}
},
"validation": {
"no_prayer_rulings": true,
"no_fixed_solar_minute_offsets": true,
"visual_only": true,
"shadow_factors_from_fiqh_time_registry": true,
"no_inline_numbers_in_celestial_simulation": true
},
"qibla_accessibility": {
"storage_key": "muslim_clock_qibla_accessibility_v1",
"defaults": {
"screen_reader": true,
"vibration": true
},
"alignment": {
"stable_ms": 1000,
"exit_threshold_deg": 8,
"direction_stable_ms": 700,
"direction_interval_ms": 3500,
"sensor_timeout_ms": 8000,
"max_tilt_deg": 35,
"max_reported_accuracy_deg": 20
},
"vibration_pattern_ms": [
120,
80,
120
],
"ui": {
"settings": "تهيئة القبلة والموقع",
"scene": "محاكاة الشمس والقمر والقبلة",
"locate": "تفعيل موقع القبلة",
"start": "بدء توجيه القبلة",
"stop": "إيقاف توجيه القبلة",
"retry": "إعادة المحاولة",
"screen_reader": "إعلان الاتجاه عبر قارئ الشاشة",
"vibration": "اهتزاز عند التوجه للقبلة",
"help": "وجّه أعلى الهاتف للأمام، وأمسكه بشكل مسطح وبعيدًا عن المعادن والمغناطيس. افتح قارئ الشاشة لسماع التوجيه. دقة الاتجاه تعتمد على حساس الهاتف.",
"aligned": "القبلة أمامك",
"right": "اتجه قليلًا لليمين",
"left": "اتجه قليلًا لليسار",
"right_far": "اتجه لليمين نحو القبلة",
"left_far": "اتجه لليسار نحو القبلة",
"loading": "جارٍ تحميل المحاكاة…",
"load_error": "تعذر تحميل المحاكاة أو سجلها. تحقق من وجود celestial_simulation.js وsky_simulation_registry.json بجانب index.html، ثم أعد المحاولة.",
"updating_error": "تعذر تحديث المحاكاة. أعد المحاولة.",
"locating": "جارٍ تحديد موقع القبلة…",
"location_failed": "تعذر تحديد الموقع أو لم يُمنح الإذن. يمكنك إعادة المحاولة أو اختيار الموقع من إعدادات مواقيت الصلاة.",
"location_unavailable": "تحديد الموقع غير متاح في هذا المتصفح.",
"location_required": "فعّل موقع القبلة أولًا، أو اختر موقعك من إعدادات مواقيت الصلاة.",
"location_device": "موقع القبلة: موقع الجهاز",
"location_saved": "موقع القبلة: الموقع المحفوظ",
"location_app": "موقع القبلة: الموقع المختار في التطبيق",
"location_default": "عرض المحاكاة الافتراضي: عمّان. يلزم تحديد موقعك لبدء توجيه القبلة.",
"location_ready": "تم تحديد الموقع. اضغط بدء توجيه القبلة.",
"waiting": "بانتظار قراءة بوصلة الهاتف…",
"stopped": "تم إيقاف توجيه القبلة.",
"sensor_unavailable": "حساس الاتجاه غير متاح. افتح التطبيق مباشرة عبر HTTPS على هاتف يدعم البوصلة.",
"permission_denied": "لم يُمنح إذن حساس الاتجاه. يمكنك إعادة المحاولة.",
"sensor_timeout": "لم تصل قراءة بوصلة موثوقة أو انقطعت. أعد تشغيل التوجيه؛ وإذا كان التطبيق داخل إطار فافتحه مباشرة.",
"flat_phone": "أمسك الهاتف بشكل مسطح وثابت لتحديد الاتجاه.",
"calibrate": "قراءة البوصلة غير دقيقة. أبعد الهاتف عن المعادن وحرّكه برفق على شكل الرقم ثمانية ثم أعد توجيهه.",
"vibration_unavailable": "الاهتزاز غير متاح في هذا المتصفح؛ يبقى التوجيه عبر قارئ الشاشة متاحًا.",
"save_failed": "تعذر حفظ الخيارات محليًا؛ ستبقى فعالة خلال هذه الجلسة.",
"settings_missing": "إعدادات القبلة غير مكتملة. أعد رفع سجل المحاكاة المحدّث."
}
},
"changelog": [
"1.2.0: دمج celestial_core_registry (الجولة الأولى) في هذا السجل: لا ملف مستقل. ثوابت القمر والإسقاط والألوان والنصوص والبوصلة والظل.",
"1.2.0: عوامل الظل (المثل/المثلين) لم تعد هنا؛ تُقرأ من fiqh_time_registry (shadow_factor_boundary)."
],
"qibla": {
"kaaba": {
"lat": 21.422487,
"lng": 39.826206
},
"note_ar": "إحداثيات الكعبة ثابت جغرافي وليست حكمًا."
},
"astronomy": {
"refraction_model": "normal"
},
"sun": {
"horizon_altitude_deg": -0.833,
"crossing_scan_step_minutes": 5,
"crossing_bisect_iterations": 28
},
"moon_model": {
"note": "للحساب الاحتياطي فقط عند غياب Astronomy Engine",
"synodic_month_days": 29.530588853,
"reference_new_moon_utc": "2000-01-06T18:14:00Z",
"new_moon_search_back_days": 35
},
"moon_bands": [
{
"until": 0.03,
"key": "new_moon",
"name_ar": "محاق"
},
{
"until": 0.22,
"key": "waxing_crescent",
"name_ar": "هلال متزايد"
},
{
"until": 0.28,
"key": "first_quarter",
"name_ar": "تربيع أول"
},
{
"until": 0.47,
"key": "waxing_gibbous",
"name_ar": "أحدب متزايد"
},
{
"until": 0.53,
"key": "full_moon",
"name_ar": "بدر"
},
{
"until": 0.72,
"key": "waning_gibbous",
"name_ar": "أحدب متناقص"
},
{
"until": 0.78,
"key": "last_quarter",
"name_ar": "تربيع أخير"
},
{
"until": 0.97,
"key": "waning_crescent",
"name_ar": "هلال متناقص"
},
{
"until": 1,
"key": "new_moon",
"name_ar": "محاق"
}
],
"moon_render": {
"light_color": "#f7f4d8",
"dark_color": "#1b2340",
"glow": "0 0 18px rgba(255,255,255,.38)",
"border_radius": "50%",
"new_moon_below": 0.03,
"full_moon_above": 0.97
},
"projection": {
"x_center_percent": 50,
"x_half_range_deg": 180,
"x_scale_percent": 50,
"x_max_percent": 100,
"y_horizon_percent": 82,
"altitude_offset_deg": 10,
"altitude_span_deg": 100,
"y_scale_percent": 72,
"y_min_percent": 6,
"y_max_percent": 92
},
"sky_phase_thresholds_deg": {
"night_below": -12,
"twilight_below": -1,
"horizon_below": 8
},
"sky_render": {
"angle_deg": 180,
"mid_mix": 0.55,
"mid_stop_percent": 58
},
"horizon_color_model": {
"cool_color": "#18345c",
"warm_color": "#f1a05c",
"peak_altitude_deg": 2,
"falloff_deg": 18
},
"qibla_render": {
"opacity_visible": "1",
"opacity_dim": ".35"
},
"defaults": {
"alignment_threshold_deg": 4,
"near_alignment_threshold_deg": 12,
"visible_below_horizon_deg": -5,
"size_min_px": 24,
"size_max_px": 44,
"size_altitude_offset_deg": 5,
"size_altitude_span_deg": 70,
"update_interval_ms": 60000,
"object_height_unit": 1,
"observer_elevation_m": 0
},
"compass": {
"no_signal_timeout_ms": 4000,
"flat_projection_below": 0.35,
"note_ar": "مقابض بسيطة تُستخدم فقط إن استُدعيت enableCompass داخل المحاكاة. ضبط الحساس المتقدم (الميل والدقة والمهلة) في qibla_accessibility."
},
"precision": {
"altitude_digits": 1,
"percent_digits": 0,
"degree_digits": 0,
"ratio_digits": 2
},
"texts_ar": {
"moon_title": "{phase} - إضاءة {percent}%",
"qibla_aligned": "أنت متجه نحو القبلة",
"qibla_turn": "حرّك الهاتف {direction} {degrees}° تقريبًا",
"qibla_bearing": "القبلة {degrees}° من الشمال",
"right": "يمينًا",
"left": "يسارًا",
"shadow_length": "طول الظل {ratio} من طول الجسم",
"sun_below_horizon": "الشمس تحت الأفق",
"info_sun": "الشمس {altitude}°",
"info_moon": "القمر {phase} {percent}%",
"info_qibla_bearing": "القبلة {degrees}°",
"info_qibla_aligned": "القبلة أمامك",
"info_qibla_delta": "فرق القبلة {degrees}°",
"info_separator": " | ",
"compass_secure_required": "الحساسات تحتاج اتصال HTTPS آمن.",
"compass_unsupported": "هذا المتصفح لا يوفر حساس اتجاه للجافاسكربت على هذا الجهاز.",
"compass_permission_denied": "لم يتم منح إذن حساس الاتجاه.",
"compass_enabled": "تم تفعيل اتجاه الهاتف.",
"compass_failed": "تعذر تفعيل حساس الاتجاه.",
"compass_no_signal": "لا توجد قراءة اتجاه مطلقة من هذا الجهاز. يظهر اتجاه القبلة بالنسبة للشمال."
},
"shadow": {
"cache_limit": 8,
"milestones_source": {
"registry": "fiqh_time_registry",
"kind": "shadow_factor_boundary"
},
"render": {
"px_per_ratio": 38,
"min_px": 6,
"max_px": 220,
"opacity_visible": ".42",
"opacity_hidden": "0"
}
}
}