From 9e5cb3c835b33677c34a82252a44bbb44a9f2e3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C5=8Dan?= Date: Fri, 1 May 2026 05:38:06 -0600 Subject: [PATCH] fix: correct Arabic March translation and day suffixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit March was "مسيرة" (masira = procession), which is a mistranslation. The correct Arabic name for March is "مارس" (māris). Also replaced @Dsuf which contained French ordinal suffixes (er/e) that are meaningless in Arabic — Arabic does not use ordinal day suffixes, so empty strings are correct. Co-Authored-By: Claude Opus 4.6 --- lib/Date/Language/Arabic.pm | 4 ++-- t/lang-data.t | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/Date/Language/Arabic.pm b/lib/Date/Language/Arabic.pm index 7764845..b7422d3 100644 --- a/lib/Date/Language/Arabic.pm +++ b/lib/Date/Language/Arabic.pm @@ -12,13 +12,13 @@ use base 'Date::Language'; our (@DoW, @DoWs, @MoY, @MoYs, @AMPM, @Dsuf, %MoY, %DoW); @DoW = qw(الأحد الاثنين الثلاثاء الأربعاء الخميس الجمعة السبت); -@MoY = qw(يناير فبراير مسيرة أبريل مايو يونيو يوليو أغسطس سبتمبر أكتوبر نوفمبر ديسمبر); +@MoY = qw(يناير فبراير مارس أبريل مايو يونيو يوليو أغسطس سبتمبر أكتوبر نوفمبر ديسمبر); @DoWs = map { substr($_,0,3) } @DoW; @MoYs = map { substr($_,0,3) } @MoY; $MoYs[6] = 'يوليو'; @AMPM = qw(صباحا مساءا); -@Dsuf = ((qw(er e e e e e e e e e)) x 3, 'er'); #To be amended +@Dsuf = ('') x 31; Date::Language::_build_lookups(); diff --git a/t/lang-data.t b/t/lang-data.t index 54671ed..4f2e789 100644 --- a/t/lang-data.t +++ b/t/lang-data.t @@ -116,4 +116,13 @@ for my $lang (sort keys %expected) { "Russian: Monday formats as Понедельник"); } +# Regression: Arabic March must be مارس (māris), not مسيرة (masira = procession) +{ + my $ar = Date::Language->new('Arabic'); + # Mon Mar 1 12:00:00 1999 UTC — mon=2 (March) + my $mar_time = 920289600; + is($ar->time2str('%B', $mar_time, 'GMT'), "\x{645}\x{627}\x{631}\x{633}", + "Arabic: March is \x{645}\x{627}\x{631}\x{633} (m\x{101}ris), not \x{645}\x{633}\x{64a}\x{631}\x{629} (masira)"); +} + done_testing;