在我关于PHP Zmanim的上一篇文章中,我说下一篇要写的是天文计算。我仍计划那样做,但最近出现了一些事情引起了我的注意,所以我准备谈论那个。我仍计划会涉及天文方面的内容。
西法律派 vs. 阿什肯纳兹
不,不是关于kitniyot。不,也不是如何挂门框。不,也不是你是否必须使用水餐包还是鸡蛋餐包可以。我在谈论某些单词中的“T”音。
考虑:
Bereshis | Bereshit |
Ki Seitzei | Ki Teitzei |
Teves | Tevet |
还有更多例子,但(如果你懂希伯来语或者长期参与正统犹太社区)你会明白。这两种传统有不同的发音方式,因此,英语音译也会有所变化。就像任何传统一样,坚持其中一种的人可能会对坚持“正确”用法很有热情。
PHP Zmanim本身使用阿什肯纳兹风格的音译。但这并不意味着你不能更改,而且相当容易做到。在接下来的几节中,我将向您展示如何将现有的日期、节日和《摩西五经》章节标题的音译转换,使它们显示为您想要的样式。
第一步:创建您的映射
对于月份名称、Torah 部分标题、节日等,PHP Zmanim 有一个值映射。让我们从最简单的开始 – 月份。
这只是一个简单的值数组:
transliteratedMonths = ["Nissan", "Iyar", "Sivan", "Tammuz", "Av", "Elul", "Tishrei", "Cheshvan","Kislev", "Teves", "Shevat", "Adar", "Adar II", "Adar I"];
为了“修复”这个并使用你想要的音译(在这种情况下,可能只有“Teves”需要更改),你首先需要重新创建数组:
$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年想知道,Tevet 月和一月的日期数字(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
注意:对于不熟悉的人,“泰夫特的第十天”(或“Asarah B’Tevet”)是一个斋日,并有其自己特殊的遵守规定。
名字的含义是什么?
我们的最后一个示例涉及对《托拉》部分名称的音译 – 无论是将《托拉》中的第一部分翻译为“Bereshis”还是“Beresheet”。对于这一点,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));
创建新的音译变量(请注意,这只是部分渲染。您可以在(截至本文撰写时)PHP Zmanim GitHub 仓库的第169行找到完整的键值数组)
$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