في آخر مقالة لي عن PHP Zmanim، قلت أن الشيء التالي الذي سأكتب عنه هو حسابات الفلك. ما زلت أخطط لفعل ذلك، ولكن ظهر شيء ما مؤخرًا لفت انتباهي، لذا سأتحدث عن ذلك بدلاً من ذلك. ما زلت أخطط للتناول للأمور الفلكية.
سفاردي مقابل أشكنازي
لا، ليس الكتنيوت. لا، ليس كيفية تعليق المزوزاه. لا، ليس ما إذا كان يجب عليك استخدام خبز الحنطة مع الماء أما إذا كان خبز البيض مقبولًا. أتحدث عن الصوت “ت” في بعض الكلمات.
فكر في:
بيرشيث | بيرشيت |
كي سيتزي | كي تيتزي |
تيفيس | تيفت |
هناك المزيد، ولكن (إذا كنت تقرأ/تتحدث العبرية أو كنت جزءًا من المجتمعات اليهودية الأرثودكسية لفترة طويلة) فإنك تفهم النقطة. هذه التقاليد الاثنان لهما طرق مختلفة لنطق بعض الأصوات، وبالتالي، تتغير الtransliteration الإنجليزية. وكأي تقاليد، يمكن أن يكون الأشخاص الذين يلتزمون بأحدهما متحمسين للإصرار على الاستخدام “الصحيح”.
يتم “ترميز” PHP Zmanim بنفسه باستخدام transliterations بنمط أشكنازي. ولكن هذا لا يعني أنه يمكنك تغيير ذلك والقيام بذلك بسهولة تامة. في الأقسام القادمة، سأريك كيفية أخذ transliterations الموجودة مسبقًا للتواريخ، والأعياد، وعناوين أجزاء التوراة وتحويلها بحيث تظهر بالطريقة التي تريدها أنت.
الخطوة 1: إنشاء الخريطة
بالنسبة لأسماء الشهور وعناوين أجزاء التوراة والأعياد وغيرها، يحتوي PHP Zmanim على خريطة للقيم. لنبدأ بالأسهل – الشهور.
هذا مجرد مصفوفة بسيطة من القيم:
transliteratedMonths = ["Nissan", "Iyar", "Sivan", "Tammuz", "Av", "Elul", "Tishrei", "Cheshvan","Kislev", "Teves", "Shevat", "Adar", "Adar II", "Adar I"];
لكي “تعدل” هذا وتستخدم الترجمة التي تريدها (في هذه الحالة، ربما “تيفيس” فقط يجب تغييره)، يجب أولاً إعادة إنشاء المصفوفة:
$transliteratedMonths = ["Nissan", "Iyar", "Sivan", "Tammuz", "Av", "Elul", "Tishrei", "Cheshvan","Kislev", "Tevet", "Shevat", "Adar", "Adar II", "Adar I"];
الخطوة 2: إعداد التقويم الخاص بك
بالنسبة للأعياد، ستستخدم كائن jewishCalendar
(الذي تناولناه في المدونة السابقة).
أولاً، نضبط متغيرات السنة والشهر واليوم وننشئ كائن تقويم يهودي:
$year = 2025;
$month = 1;
$day = 10;
$jewishCalendar = Zmanim::jewishCalendar(Carbon::createFromDate($theyear, $themonth, $theday));
ضع كل شيء معًا
بعد ذلك، نهيئ تنسيق PHP Zmanim ومن ثم نضيف الشهور المترجمة الجديدة إلى PHP Zmanim:
$format = Zmanim::format();
$format->setTransliteratedMonthList($transliteratedMonths);
وأخيرًا، نأخذ تلك الناتجة من التنسيق ونضعها في متغير:
$zmandate = json_decode('"' . $format->format($jewishCalendar) . '"');
return $zmandate;
سيكون النتيجة:
10 Tevet 5785
ونعم، إذا كنت تتساءل، في عام 2025، تتطابق أرقام الأيام (1، 2، 3، إلخ) لشهر تيفيت وشهر يناير.
عيد سعيد!
تتعامل ترجمات الأعياد بنفس الطريقة، حتى إذا كانت هناك بعض الاختلافات الطفيفة.
نبدأ بإعداد نفسه للتاريخ وكائن التقويم:
$year = 2025;
$month = 1;
$day = 10;
$jewishCalendar = Zmanim::jewishCalendar(Carbon::createFromDate($theyear, $themonth, $theday));
بعد ذلك، سنضع ترجمات الأعياد بنفس الطريقة التي فعلنا بها للشهور:
$transliteratedHolidays = ["Erev Pesach", "Pesach", "Chol Hamoed Pesach", "Pesach Sheni", "Erev Shavuot", "Shavuot", "Shiva Asar B'Tammuz", "Tisha B'Av", "Tu B'Av", "Erev Rosh Hashana", "Rosh Hashana", "Tzom Gedalyah", "Erev Yom Kippur", "Yom Kippur", "Erev Succot", "Succot", "Chol Hamoed Succot", "Hoshana Rabba", "Shemini Atzeret", "Simchat Torah", "Erev Chanukah", "Chanukah", "Tenth of Tevet", "Tu Bishvat", "Taanit Esther", "Purim", "Shushan Purim", "Purim Katan", "Rosh Chodesh", "Yom HaShoah", "Yom Hazikaron", "Yom Ha'atzmaut", "Yom Yerushalayim", "Lag B'Omer","Shushan Purim Katan", "Isru Chag"];
بعد ذلك، نهيئ تنسيق PHP Zmanim ومن ثم نضيف الشهور المترجمة الجديدة إلى PHP Zmanim:
$format = Zmanim::format();
$format-$format->setTransliteratedHolidayList($transliteratedHolidays);
أخيرًا، نستخدم معلومات التقويم و (إذا كانت عطلة) نحصل على الناتج:
$zmanholiday = $format->formatYomTov($jewishCalendar);
سيكون رد $zmanholiday
كما يلي:
Tenth of Tevet
ملاحظة: بالنسبة لأولئك الذين ليسوا على دراية، “العاشر من تَبِيت” (أو “عاصرة بتبيت”) هو يوم صوم، وله مجموعة خاصة من الطقوس.
ما في اسم؟
آخر مثال لدينا يتعامل مع نقل أسماء أجزاء التوراة – سواء قدمت الجزء الأول في التوراة بـ “بِرَشيث” أو “بيرشيت”. لهذا، يستخدم PHP Zmanim مصفوفة من الأزواج المفتاحية-القيمية، حيث كل ما عليك فعله هو تغيير القيمة، وترك المفتاح كما هو. إليك كيف يبدو دون تغيير:
$this->transliteratedParshaMap = [
Parsha::NONE => "",
Parsha::BERESHIS => "Bereshis",
Parsha::NOACH => "Noach",
Parsha::LECH_LECHA => "Lech Lecha",
Parsha::VAYERA => "Vayera",
Parsha::CHAYEI_SARA => "Chayei Sara",
Parsha::TOLDOS => "Toldos",
(and so on. I'm not printing the full list here)
وها هي التحريرات التي أقوم بها لكنيستي (السفاردي):
$transliteratedParshaMap = [
Parsha::NONE => "",
Parsha::BERESHIS => "Beresheet",
Parsha::NOACH => "Noach",
Parsha::LECH_LECHA => "Lech Lecha",
Parsha::VAYERA => "Vayera",
Parsha::CHAYEI_SARA => "Chayei Sara",
Parsha::TOLDOS => "Toldot",
(etc)
استخدام هذا داخل كودك يتبع نفس النمط الذي أنشأناه مع التواريخ والعطلات.
قبل أن نبدأ البرمجة، من المهم ملاحظة أن عليك التأكد من استخدام فئة “Parsha” في كودك:
use PhpZmanim\HebrewCalendar\Parsha;
كما أنه من المهم بالنسبة لك أن تعرف أن PHP Zmanim سيقوم بإخراج جزء من التوراة فقط إذا كان التاريخ المعطى هو يوم سبت، لذا قد تحتاج إلى أن تأخذ أي تاريخ معطى وتجد يوم السبت القادم (أو السابق) لتحصل على النتيجة الصحيحة.
بمجرد التعامل مع تلك العناصر، تبدأ بإنشاء كائن التقويم كما فعلنا في أمثلتنا الأخرى:
$getyear = 2024;
$getday = 26;
$getmonth = 10;
$jewishCalendar = Zmanim::jewishCalendar(Carbon::createFromDate($theyear, $themonth, $theday));
أنشئ متغير التحويل الجديد (يرجى ملاحظة أن هذا تم تقديمه جزئيًا فقط. يمكنك العثور على مجموعة مفاتيح القيم الكاملة على (حتى وقت كتابة هذا النص) السطر 169 على مستودع PHP Zmanim GitHub)
$transliteratedParshaMap = [
Parsha::NONE => "",
Parsha::BERESHIS => "Beresheet",
Parsha::NOACH => "Noach",
Parsha::LECH_LECHA => "Lech Lecha",
Parsha::VAYERA => "Vayera",
Parsha::CHAYEI_SARA => "Chayei Sara",
Parsha::TOLDOS => "Toldot",
(etc)
بعد ذلك، نقوم بتهيئة التنسيق ومن ثم نضغط على مصفوفة التحويل الجديدة:
$format = Zmanim::format();
$format->setTransliteratedParshiosList($transliteratedParshaMap);
وأخيرًا، نستخدم معلومات التقويم لالتقاط الجزء الصحيح من التوراة محولًا بالطريقة التي نريدها:
$output = json_decode('"' . $format->formatParsha($jewishCalendar) . '"');
سيعطينا إخراج الـ Echo:
Beresheet
هل هناك شيء آخر يمكن قوله؟
قد يبدو هذا كله غير ضروري بالنسبة لبعض الأشخاص لأنها تتطلب قدرًا زائدًا من العمل من أجل اختلافات بسيطة في التهجئة. بالنسبة للأشخاص الذين لم يقضوا الكثير من الوقت في مجموعات حيث تتداخل الثقافات اليهودية المختلفة، قد يكون من المفاجئ اكتشاف مدى شغف الناس بهذه الأمور.
الآن، أذكرني مرة أخرى بالطريقة “الصحيحة” لنطق GIF.
Source:
https://dzone.com/articles/time-data-series-how-you-said-it