diff --git a/scripts/translation-progress.php b/scripts/translation-progress.php index 030fff9c..b8c343db 100644 --- a/scripts/translation-progress.php +++ b/scripts/translation-progress.php @@ -17,7 +17,7 @@ function getProgress(array $translations): array "Week Streak", "Longest Week Streak", "Present", - "Excluding", + "Excluding {days}", ]; $translations_file = file(__DIR__ . "/../src/translations.php"); diff --git a/src/card.php b/src/card.php index b38ec9b7..93df11d7 100644 --- a/src/card.php +++ b/src/card.php @@ -84,6 +84,21 @@ function translateDays(array $days, string $locale): array return $translatedDays; } +/** + * Get the excluding days text + * + * @param array $excludedDays List of excluded days + * @param array $localeTranslations Translations for the locale + * @param string $localeCode Locale code + * @return string Excluding days text + */ +function getExcludingDaysText($excludedDays, $localeTranslations, $localeCode) +{ + $separator = $localeTranslations["comma_separator"] ?? ", "; + $daysCommaSeparated = implode($separator, translateDays($excludedDays, $localeCode)); + return str_replace("{days}", $daysCommaSeparated, $localeTranslations["Excluding {days}"]); +} + /** * Normalize a theme name * @@ -412,13 +427,13 @@ function generateCard(array $stats, array $params = null): string // if days are excluded, add a note to the corner $excludedDays = ""; if (!empty($stats["excludedDays"])) { - $daysCommaSeparated = implode(", ", translateDays($stats["excludedDays"], $localeCode)); $offset = $direction === "rtl" ? $cardWidth - 5 : 5; + $excludingDaysText = getExcludingDaysText($stats["excludedDays"], $localeTranslations, $localeCode); $excludedDays = " - * {$localeTranslations["Excluding"]} {$daysCommaSeparated} + * {$excludingDaysText} "; diff --git a/src/translations.php b/src/translations.php index 3b63c7b0..f84069ed 100644 --- a/src/translations.php +++ b/src/translations.php @@ -22,6 +22,10 @@ * ------------------------------ * To enable right-to-left language support, add `"rtl" => true` to the locale array (see "he" for an example). * + * Comma Separator + * --------------- + * To change the comma separator in the enumeration of excluded days, add `"comma_separator" => ", "` to the locale array with the desired separator as the value. + * * Aliases * ------- * To add an alias for a locale, add the alias as a key to the locale array with the locale it should redirect to as the value. @@ -37,7 +41,7 @@ "Week Streak" => "Week Streak", "Longest Week Streak" => "Longest Week Streak", "Present" => "Present", - "Excluding" => "Excluding", + "Excluding {days}" => "Excluding {days}", ], // Locales below are sorted alphabetically "am" => [ @@ -47,7 +51,7 @@ "Week Streak" => "የሳምንት ድግግሞሽ", "Longest Week Streak" => "በጣም ረጅሙ የሳምንት ድግግሞሽ", "Present" => "ያሁኑ", - "Excluding" => "ሳይጨምር", + "Excluding {days}" => "ሳይጨምር {days}", ], "ar" => [ "rtl" => true, @@ -57,7 +61,8 @@ "Week Streak" => "السلسلة المتتالية الأُسبوعية", "Longest Week Streak" => "أُطول سلسلة متتالية أُسبوعية", "Present" => "الحاضر", - "Excluding" => "باستثناء", + "Excluding {days}" => "باستثناء {days}", + "comma_separator" => "، ", ], "bg" => [ "Total Contributions" => "Общ принос", @@ -82,7 +87,7 @@ "Week Streak" => "Ratxa setmanal", "Longest Week Streak" => "Ratxa setmanal més llarga", "Present" => "Actual", - "Excluding" => "Excloent", + "Excluding {days}" => "Excloent {days}", ], "ceb" => [ "Total Contributions" => "Kinatibuk-ang Kontribusyon", @@ -91,7 +96,7 @@ "Week Streak" => "Sinemana nga Streak", "Longest Week Streak" => "Pinakataas nga Semana nga Streak", "Present" => "Karon", - "Excluding" => "Wala'y Labot", + "Excluding {days}" => "Wala'y Labot {days}", ], "da" => [ "Total Contributions" => "Samlet antal bidrag", @@ -100,7 +105,7 @@ "Week Streak" => "Ugentlige bidrag i træk", "Longest Week Streak" => "Flest ugentlige bidrag i træk", "Present" => "Nuværende", - "Excluding" => "Ekskluderer", + "Excluding {days}" => "Ekskluderer {days}", ], "de" => [ "Total Contributions" => "Gesamte Beiträge", @@ -109,7 +114,7 @@ "Week Streak" => "Wochenserie", "Longest Week Streak" => "Längste Wochenserie", "Present" => "Heute", - "Excluding" => "Ausgenommen", + "Excluding {days}" => "Ausgenommen {days}", ], "el" => [ "Total Contributions" => "Συνολικές Συνεισφορές", @@ -118,7 +123,7 @@ "Week Streak" => "Εβδομαδιαία Σειρά", "Longest Week Streak" => "Μεγαλύτερη Εβδομαδιαία Σειρά", "Present" => "Σήμερα", - "Excluding" => "Εξαιρούνται", + "Excluding {days}" => "Εξαιρούνται {days}", ], "es" => [ "Total Contributions" => "Contribuciones Totales", @@ -127,7 +132,7 @@ "Week Streak" => "Racha Semanal", "Longest Week Streak" => "Racha Semanal Más Larga", "Present" => "Presente", - "Excluding" => "Excluyendo", + "Excluding {days}" => "Excluyendo {days}", ], "fa" => [ "rtl" => true, @@ -137,6 +142,7 @@ "Week Streak" => "پی‌رفت هفته", "Longest Week Streak" => "طولانی ترین پی‌رفت هفته", "Present" => "اکنون", + "comma_separator" => "، ", ], "fil" => [ "Total Contributions" => "Kabuuang Kontribusyon", @@ -145,7 +151,7 @@ "Week Streak" => "Linggong Streak", "Longest Week Streak" => "Pinakamahabang Linggong Streak", "Present" => "Kasalukuyan", - "Excluding" => "Hindi Kasama", + "Excluding {days}" => "Hindi Kasama {days}", ], "fr" => [ "Total Contributions" => "Contributions totales", @@ -154,7 +160,7 @@ "Week Streak" => "Séquence de la semaine", "Longest Week Streak" => "Plus longue séquence hebdomadaire", "Present" => "Aujourd'hui", - "Excluding" => "À l'exclusion de", + "Excluding {days}" => "À l'exclusion de {days}", ], "he" => [ "rtl" => true, @@ -164,7 +170,7 @@ "Week Streak" => "רצף שבועי", "Longest Week Streak" => "רצף שבועי הכי ארוך", "Present" => "היום", - "Excluding" => "לא כולל", + "Excluding {days}" => "לא כולל {days}", ], "hi" => [ "Total Contributions" => "कुल योगदान", @@ -173,7 +179,7 @@ "Week Streak" => "सप्ताहिक योगदान", "Longest Week Streak" => "दीर्घ साप्ताहिक योगदान", "Present" => "आज तक", - "Excluding" => "के सिवा", + "Excluding {days}" => "के सिवा {days}", ], "ht" => [ "Total Contributions" => "kontribisyon total", @@ -190,7 +196,7 @@ "Week Streak" => "Heti sorozat", "Longest Week Streak" => "Leghosszabb heti sorozat", "Present" => "Jelen", - "Excluding" => "Kivéve", + "Excluding {days}" => "Kivéve {days}", ], "hy" => [ "Total Contributions" => "Ընդհանուր\nներդրումը", @@ -207,7 +213,7 @@ "Week Streak" => "Aksi Mingguan", "Longest Week Streak" => "Aksi Mingguan Terpanjang", "Present" => "Sekarang", - "Excluding" => "Tidak termasuk", + "Excluding {days}" => "Tidak termasuk {days}", ], "it" => [ "Total Contributions" => "Contributi Totali", @@ -216,7 +222,7 @@ "Week Streak" => "Serie Settimanale", "Longest Week Streak" => "Serie Settimanale più Lunga", "Present" => "Presente", - "Excluding" => "Escludendo", + "Excluding {days}" => "Escludendo {days}", ], "ja" => [ "date_format" => "[Y.]n.j", @@ -226,6 +232,8 @@ "Week Streak" => "週間ストリーク", "Longest Week Streak" => "最長の週間ストリーク", "Present" => "今", + "Excluding {days}" => "{days}を除く", + "comma_separator" => "・", ], "kn" => [ "Total Contributions" => "ಒಟ್ಟು ಕೊಡುಗೆ", @@ -234,7 +242,7 @@ "Week Streak" => "ವಾರದ ಸ್ಟ್ರೀಕ್", "Longest Week Streak" => "ಅತ್ಯಧಿಕ ವಾರದ ಸ್ಟ್ರೀಕ್", "Present" => "ಪ್ರಸ್ತುತ", - "Excluding" => "ಹೊರತುಪಡಿಸಿ", + "Excluding {days}" => "ಹೊರತುಪಡಿಸಿ {days}", ], "ko" => [ "Total Contributions" => "총 기여 수", @@ -243,7 +251,7 @@ "Week Streak" => "주간 기여 수", "Longest Week Streak" => "최대 주간 기여 수", "Present" => "현재", - "Excluding" => "제외된 날", + "Excluding {days}" => "제외된 날 {days}", ], "mr" => [ "Total Contributions" => "एकूण योगदान", @@ -260,7 +268,7 @@ "Week Streak" => "Tindakan Setiap Minggu", "Longest Week Streak" => "Tindakan Setiap Minggu Terpanjang", "Present" => "Sekarang", - "Excluding" => "Mengecualikan", + "Excluding {days}" => "Mengecualikan {days}", ], "ne" => [ "Total Contributions" => "कुल योगदान", @@ -269,7 +277,7 @@ "Week Streak" => "सप्ताहिक योगदान", "Longest Week Streak" => "सबैभन्दा लामो साप्ताहिक योगदान", "Present" => "आज सम्म", - "Excluding" => "बाहेक", + "Excluding {days}" => "बाहेक {days}", ], "nl" => [ "Total Contributions" => "Totale Bijdrage", @@ -278,7 +286,7 @@ "Week Streak" => "Week Serie", "Longest Week Streak" => "Langste Week Serie", "Present" => "Vandaag", - "Excluding" => "Exclusief", + "Excluding {days}" => "Exclusief {days}", ], "pl" => [ "Total Contributions" => "Suma Kontrybucji", @@ -296,6 +304,7 @@ "Week Streak" => "د اونۍ پرمختګ", "Longest Week Streak" => "د اونۍ تر ټولو اوږد پرمختګ", "Present" => "اوس", + "comma_separator" => "، ", ], "pt_BR" => [ "Total Contributions" => "Total de Contribuições", @@ -304,7 +313,7 @@ "Week Streak" => "Sequência Semanal", "Longest Week Streak" => "Maior Sequência Semanal", "Present" => "Presente", - "Excluding" => "Exceto", + "Excluding {days}" => "Exceto {days}", ], "ru" => [ "Total Contributions" => "Общий вклад", @@ -313,7 +322,7 @@ "Week Streak" => "Текущая серия недель", "Longest Week Streak" => "Самая длинная серия недель", "Present" => "Сейчас", - "Excluding" => "Не включая", + "Excluding {days}" => "Не включая {days}", ], "rw" => [ "Total Contributions" => "Imisanzu yose", @@ -330,7 +339,7 @@ "Week Streak" => "निरन्तरसप्ताहाः", "Longest Week Streak" => "दीर्घतमाः निरन्तरसप्ताहाः", "Present" => "वर्तमान", - "Excluding" => "बहिष्करणम्", + "Excluding {days}" => "बहिष्करणम् {days}", ], "sr" => [ "Total Contributions" => "Укупно додавања", @@ -339,7 +348,7 @@ "Week Streak" => "Недељна серија", "Longest Week Streak" => "Најдужа недељена серија", "Present" => "Данас", - "Excluding" => "Искључујући", + "Excluding {days}" => "Искључујући {days}", ], "su" => [ "Total Contributions" => "Total Kontribusi", @@ -348,7 +357,7 @@ "Week Streak" => "Aksi Unggal Minggon", "Longest Week Streak" => "Aksi Unggal Minggon Pangpanjangna", "Present" => "Ayeuna", - "Excluding" => "Teu Kaasup", + "Excluding {days}" => "Teu Kaasup {days}", ], "sv" => [ "Total Contributions" => "Totalt antal uppladningar", @@ -381,7 +390,7 @@ "Week Streak" => "สตรีคประจำสัปดาห์", "Longest Week Streak" => "สตรีคประจำสัปดาห์\nที่ยาวนานที่สุด", "Present" => "ปัจจุบัน", - "Excluding" => "ยกเว้น", + "Excluding {days}" => "ยกเว้น {days}", ], "tr" => [ "Total Contributions" => "Toplam Katkı", @@ -390,7 +399,7 @@ "Week Streak" => "Haftalık Seri", "Longest Week Streak" => "En Uzun Haftalık Seri", "Present" => "Şu an", - "Excluding" => "Hariç", + "Excluding {days}" => "Hariç {days}", ], "uk" => [ "Total Contributions" => "Загальний вклад", @@ -399,7 +408,7 @@ "Week Streak" => "Діяльність за тиждень", "Longest Week Streak" => "Найбільша к-сть тижнів", "Present" => "Наразі", - "Excluding" => "Виключаючи", + "Excluding {days}" => "Виключаючи {days}", ], "ur_PK" => [ "rtl" => true, @@ -409,7 +418,8 @@ "Week Streak" => "ہفتہ وار تسلسل", "Longest Week Streak" => "طویل ترین ہفتہ وار تسلسل", "Present" => "حاظر", - "Excluding" => "خارج", + "Excluding {days}" => "خارج {days}", + "comma_separator" => "، ", ], "vi" => [ "Total Contributions" => "Tổng số đóng góp", @@ -418,7 +428,7 @@ "Week Streak" => "Chuỗi tuần", "Longest Week Streak" => "Chuỗi tuần lớn nhất", "Present" => "Hiện tại", - "Excluding" => "Ngoại trừ", + "Excluding {days}" => "Ngoại trừ {days}", ], "yo" => [ "Total Contributions" => "Lapapọ ilowosi", @@ -427,7 +437,7 @@ "Week Streak" => "ṣiṣan ọsẹ", "Longest Week Streak" => "gunjulo ọsẹ ṣiṣan", "Present" => "lọwọlọwọ", - "Excluding" => "Yato si", + "Excluding {days}" => "Yato si {days}", ], "zh" => "zh_Hans", "zh_Hans" => [ @@ -437,7 +447,8 @@ "Week Streak" => "周连续贡献", "Longest Week Streak" => "最长周连续贡献", "Present" => "至今", - "Excluding" => "除外", + "Excluding {days}" => "除外 {days}", + "comma_separator" => "、", ], "zh_Hant" => [ "Total Contributions" => "合計貢獻", @@ -446,6 +457,7 @@ "Week Streak" => "周連續貢獻", "Longest Week Streak" => "最常周連續貢獻", "Present" => "至今", - "Excluding" => "除外", + "Excluding {days}" => "除外 {days}", + "comma_separator" => "、", ], ]; diff --git a/tests/TranslationsTest.php b/tests/TranslationsTest.php index f662c2ce..d8937b18 100644 --- a/tests/TranslationsTest.php +++ b/tests/TranslationsTest.php @@ -25,7 +25,8 @@ public function testAllPhrasesValid(): void "Week Streak", "Longest Week Streak", "Present", - "Excluding", + "Excluding {days}", + "comma_separator", ]; foreach ($locales as $locale) { // if it is a string, assert that the alias exists in the translations file pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy