W moim ostatnim wpisie na PHP Zmanim powiedziałem, że następną rzeczą, o której napiszę, będą obliczenia astronomiczne. Nadal planuję to zrobić, ale ostatnio pojawiło się coś, co przykuło moją uwagę, więc zamiast tego o tym napiszę. Nadal planuję zająć się astronomią.
Nie, nie Kitniyot. Nie, nie jak powiesić mezuzę. Nie, nie czy trzeba używać chałki wodnej lub czy chałka jajeczna jest OK. Mówię o dźwięku „T” w niektórych słowach.
Rozważać:
Bereszys | Bereszit |
---|---|
Ki Seitzei | Ki Teitzei |
Teves | Tewet |
Jest ich więcej, ale (jeśli czytasz/mówisz po hebrajsku lub jesteś częścią ortodoksyjnych społeczności żydowskich przez jakiś czas) rozumiesz, o co chodzi. Te dwie tradycje mają różne sposoby wymawiania pewnych dźwięków, dlatego też angielska transkrypcja ulega zmianie. I jak w przypadku każdej tradycji, ci, którzy trzymają się jednej lub drugiej, mogą być namiętni w naleganiu na „poprawne” użycie.
PHP Zmanim samo w sobie jest „kodowane” przy użyciu transliteracji w stylu aszkenazyjskim. Ale to nie znaczy, że nie możesz tego zmienić i zrobić tego dość łatwo. W kilku następnych sekcjach pokażę Ci, jak wziąć istniejące transliteracje dat, świąt i tytułów części Tory i przekonwertować je tak, aby pojawiały się w sposób, w jaki CHCESZ.
W przypadku nazw miesięcy, tytułów fragmentów Tory, świąt i innych, PHP Zmanim ma mapę wartości. Zacznijmy od najłatwiejszej – Miesięcy.
To jest po prostu prosta tablica wartości:
transliteratedMonths = ["Nissan", "Iyar", "Sivan", "Tammuz", "Av", "Elul", "Tishrei", "Cheshvan","Kislev", "Teves", "Shevat", "Adar", "Adar II", "Adar I"];
Aby to „naprawić” i użyć żądanej transkrypcji (w tym przypadku prawdopodobnie trzeba zmienić tylko „Teves”), najpierw należy ponownie utworzyć tablicę:
$transliteratedMonths = ["Nissan", "Iyar", "Sivan", "Tammuz", "Av", "Elul", "Tishrei", "Cheshvan","Kislev", "Tevet", "Shevat", "Adar", "Adar II", "Adar I"];
W przypadku świąt należy użyć obiektu jewishCalendar (o którym pisaliśmy w poprzednim wpisie na blogu ).
Najpierw ustawiamy zmienne roku, miesiąca i dnia, a następnie tworzymy obiekt kalendarza żydowskiego:
$year = 2025; $month = 1; $day = 10; $jewishCalendar = Zmanim::jewishCalendar(Carbon::createFromDate($theyear, $themonth, $theday));
Następnie inicjalizujemy format PHP ZManim i wprowadzamy nowe przetransliterowane miesiące do PHP Zmanim:
$format = Zmanim::format(); $format->setTransliteratedMonthList($transliteratedMonths);
Na koniec zapisujemy wynik w tym formacie do zmiennej:
$zmandate = json_decode('"' . $format->format($jewishCalendar) . '"'); return $zmandate;
Wynik byłby taki
10 Tevet 5785
I tak, jeśli się zastanawiacie, w roku 2025 numery dni (1, 2, 3 itd.) w miesiącu Tewet i miesiącu styczniu pokrywają się.
Transkrypcje świąt są obsługiwane w podobny sposób, chociaż występują drobne różnice.
Zacznij od tej samej konfiguracji początkowej obiektu daty i kalendarza:
$year = 2025; $month = 1; $day = 10; $jewishCalendar = Zmanim::jewishCalendar(Carbon::createFromDate($theyear, $themonth, $theday));
Następnie ustawimy transkrypcje świąt w taki sam sposób, w jaki robiliśmy to przez miesiące:
$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"];
Następnie inicjalizujemy format PHP ZManim i wprowadzamy nowe przetransliterowane miesiące do PHP Zmanim:
$format = Zmanim::format(); $format-$format->setTransliteratedHolidayList($transliteratedHolidays);
Na koniec korzystamy z informacji kalendarzowych i (jeśli jest to święto) otrzymujemy wynik:
$zmanholiday = $format->formatYomTov($jewishCalendar);
Echo $zmanholiday
wyglądałoby tak:
Dziesiąty Tewet
UWAGA: Dla tych, którzy nie wiedzą, „Dziesiąty dzień Tewet” (lub „Asarah B'Tewet”) jest dniem postu i ma swój własny, specjalny zestaw obchodów.
Nasz ostatni przykład dotyczy transkrypcji nazw fragmentów Tory – niezależnie od tego, czy pierwszą część Tory oddaje się jako „Bereshis” czy „Beresheet”. W tym celu PHP Zmanim używa tablicy par klucz-wartość, gdzie wszystko, co musisz zrobić, to zmienić wartość i pozostawić klucz w spokoju.
Oto jak to wygląda bez zmian:
$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)
(A oto zmiany, jakie wprowadzam w mojej synagodze (sefardyjskiej):
$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)
Użycie tego w kodzie odbywa się według tego samego wzorca, który ustaliliśmy w przypadku dat i świąt.
Zanim zaczniemy kodować, ważne jest, aby upewnić się, że klasa „Parsha” jest używana w kodzie:
use PhpZmanim\HebrewCalendar\Parsha;
Ważne jest również, aby wiedzieć, że PHP Zmanim wyprowadzi fragment Tory tylko wtedy, gdy podana data przypada w sobotę. Dlatego może być konieczne znalezienie nadchodzącej (lub poprzedniej) soboty dla danej daty, aby uzyskać prawidłowy wynik.
Gdy już te elementy zostaną obsłużone, należy rozpocząć od utworzenia obiektu kalendarza, tak jak w naszych innych przykładach:
$getyear = 2024; $getday = 26; $getmonth = 10; $jewishCalendar = Zmanim::jewishCalendar(Carbon::createFromDate($theyear, $themonth, $theday));
Utwórz nową zmienną transliteracji (zauważ, że jest ona renderowana tylko częściowo. Pełną tablicę klucz-wartość można znaleźć (w momencie pisania tego tekstu) w wierszu 169 w repozytorium 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)
Następnie inicjujemy format i przesyłamy nową, przetłumaczoną tablicę:
$format = Zmanim::format(); $format->setTransliteratedParshiosList($transliteratedParshaMap);
Na koniec korzystamy z informacji z kalendarza, aby wybrać właściwy fragment Tory, przetransliterowany tak, jak chcemy:
$output = json_decode('"' . $format->formatParsha($jewishCalendar) . '"');
Powtórzenie wyniku dałoby nam:
Bierzmowanie
Dla niektórych to wszystko może wydawać się niepotrzebną ilością pracy z powodu kilku różnic w pisowni. Dla osób, które nie spędziły dużo czasu w grupach, w których mieszają się różne kultury żydowskie, może być szokujące odkrycie, jak bardzo ludzie są namiętni w tych sprawach.
A teraz przypomnij mi jeszcze raz, jak poprawnie wymawiać słowo GIF?