В моем последнем посте о PHP Zmanim я сказал, что следующая тема, о которой я напишу, – это астрономические расчеты. Я всё еще планирую это сделать, но недавно возникла другая тема, которая привлекла мое внимание, поэтому я решил поговорить об этом вместо. Я всё еще планирую заняться астрономией.
Сефардим vs. Ашкеназим
Нет, не о китниот. Нет, не о том, как подвесить мезузу. Нет, не о том, нужно ли использовать халу на воде или можно ли использовать халу из яиц. Я говорю о звуке “Т” в определенных словах.
Рассмотрим:
Берешиc | Берешит |
Ки Сейтзей | Ки Тейтзей |
Тевес | Тевет |
Есть и другие примеры, но (если вы читаете/говорите на иврите или долгое время были частью ортодоксального еврейского сообщества), вы понимаете суть. У этих двух традиций разные способы произношения определенных звуков, и, следовательно, английская транслитерация меняется. И, как и в любой традиции, те, кто придерживается одной из них, могут страстно настаивать на “правильном” использовании.
PHP Zmanim, сам по себе, “закодирован” с использованием ашкеназских транслитераций. Но это не означает, что вы не можете изменить это довольно легко. В следующих разделах я покажу вам, как взять уже существующие транслитерации для дат, праздников и названий участков Торы и преобразовать их так, чтобы они отображались так, как ВЫ хотите.
Шаг 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) . '"');
Вывод на экран даст нам:
Beresheet
Что ещё можно сказать?
Для некоторых все это может показаться излишней работой из-за нескольких различий в написании. Для тех, кто не проводил много времени в группах, где смешиваются различные еврейские культуры, может быть шоком узнать, насколько страстно люди относятся к этим вещам.
Теперь, напомните мне снова о “правильном” произношении GIF.
Source:
https://dzone.com/articles/time-data-series-how-you-said-it