paint-brush
Seria danych czasowych: Nie chodzi o to, co powiedziałeś, ale o to, jak to powiedziałeśprzez@leonadato
219 odczyty Nowa historia

Seria danych czasowych: Nie chodzi o to, co powiedziałeś, ale o to, jak to powiedziałeś

przez Leon Adato5m2025/03/01
Read on Terminal Reader

Za długo; Czytać

Biblioteka PHP Zmanim ma kilka funkcji, które wyprowadzają specjalistyczny tekst. Oto jak modyfikujesz ten wynik, aby dopasować go do pożądanego stylu lub dialektu.
featured image - Seria danych czasowych: Nie chodzi o to, co powiedziałeś, ale o to, jak to powiedziałeś
Leon Adato HackerNoon profile picture

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ą.

Sefardyjczycy kontra Aszkenazyjczycy

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.

Krok 1: Utwórz swoją mapę

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"];

Krok 2: Skonfiguruj swój kalendarz

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));

Złóż wszystko razem

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ę.

Wesołych Świąt!

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.

Co kryje się w nazwie?

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

Cóż więcej można powiedzieć?

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?