Skip to content

Commit 061b1f0

Browse files
authored
feat: Support word order change, comma separation, Japanese for Excluding (#604)
1 parent f6a9da2 commit 061b1f0

File tree

4 files changed

+66
-38
lines changed

4 files changed

+66
-38
lines changed

scripts/translation-progress.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ function getProgress(array $translations): array
1717
"Week Streak",
1818
"Longest Week Streak",
1919
"Present",
20-
"Excluding",
20+
"Excluding {days}",
2121
];
2222

2323
$translations_file = file(__DIR__ . "/../src/translations.php");

src/card.php

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,21 @@ function translateDays(array $days, string $locale): array
8484
return $translatedDays;
8585
}
8686

87+
/**
88+
* Get the excluding days text
89+
*
90+
* @param array<string> $excludedDays List of excluded days
91+
* @param array<string,string> $localeTranslations Translations for the locale
92+
* @param string $localeCode Locale code
93+
* @return string Excluding days text
94+
*/
95+
function getExcludingDaysText($excludedDays, $localeTranslations, $localeCode)
96+
{
97+
$separator = $localeTranslations["comma_separator"] ?? ", ";
98+
$daysCommaSeparated = implode($separator, translateDays($excludedDays, $localeCode));
99+
return str_replace("{days}", $daysCommaSeparated, $localeTranslations["Excluding {days}"]);
100+
}
101+
87102
/**
88103
* Normalize a theme name
89104
*
@@ -412,13 +427,13 @@ function generateCard(array $stats, array $params = null): string
412427
// if days are excluded, add a note to the corner
413428
$excludedDays = "";
414429
if (!empty($stats["excludedDays"])) {
415-
$daysCommaSeparated = implode(", ", translateDays($stats["excludedDays"], $localeCode));
416430
$offset = $direction === "rtl" ? $cardWidth - 5 : 5;
431+
$excludingDaysText = getExcludingDaysText($stats["excludedDays"], $localeTranslations, $localeCode);
417432
$excludedDays = "<g style='isolation: isolate'>
418433
<!-- Excluded Days -->
419434
<g transform='translate({$offset},187)'>
420435
<text stroke-width='0' text-anchor='right' fill='{$theme["excludeDaysLabel"]}' stroke='none' font-family='\"Segoe UI\", Ubuntu, sans-serif' font-weight='400' font-size='10px' font-style='normal' style='opacity: 0; animation: fadein 0.5s linear forwards 0.9s'>
421-
* {$localeTranslations["Excluding"]} {$daysCommaSeparated}
436+
* {$excludingDaysText}
422437
</text>
423438
</g>
424439
</g>";

src/translations.php

Lines changed: 46 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@
2222
* ------------------------------
2323
* To enable right-to-left language support, add `"rtl" => true` to the locale array (see "he" for an example).
2424
*
25+
* Comma Separator
26+
* ---------------
27+
* 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.
28+
*
2529
* Aliases
2630
* -------
2731
* 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 @@
3741
"Week Streak" => "Week Streak",
3842
"Longest Week Streak" => "Longest Week Streak",
3943
"Present" => "Present",
40-
"Excluding" => "Excluding",
44+
"Excluding {days}" => "Excluding {days}",
4145
],
4246
// Locales below are sorted alphabetically
4347
"am" => [
@@ -47,7 +51,7 @@
4751
"Week Streak" => "የሳምንት ድግግሞሽ",
4852
"Longest Week Streak" => "በጣም ረጅሙ የሳምንት ድግግሞሽ",
4953
"Present" => "ያሁኑ",
50-
"Excluding" => "ሳይጨምር",
54+
"Excluding {days}" => "ሳይጨምር {days}",
5155
],
5256
"ar" => [
5357
"rtl" => true,
@@ -57,7 +61,8 @@
5761
"Week Streak" => "السلسلة المتتالية الأُسبوعية",
5862
"Longest Week Streak" => "أُطول سلسلة متتالية أُسبوعية",
5963
"Present" => "الحاضر",
60-
"Excluding" => "باستثناء",
64+
"Excluding {days}" => "باستثناء {days}",
65+
"comma_separator" => "، ",
6166
],
6267
"bg" => [
6368
"Total Contributions" => "Общ принос",
@@ -82,7 +87,7 @@
8287
"Week Streak" => "Ratxa setmanal",
8388
"Longest Week Streak" => "Ratxa setmanal més llarga",
8489
"Present" => "Actual",
85-
"Excluding" => "Excloent",
90+
"Excluding {days}" => "Excloent {days}",
8691
],
8792
"ceb" => [
8893
"Total Contributions" => "Kinatibuk-ang Kontribusyon",
@@ -91,7 +96,7 @@
9196
"Week Streak" => "Sinemana nga Streak",
9297
"Longest Week Streak" => "Pinakataas nga Semana nga Streak",
9398
"Present" => "Karon",
94-
"Excluding" => "Wala'y Labot",
99+
"Excluding {days}" => "Wala'y Labot {days}",
95100
],
96101
"da" => [
97102
"Total Contributions" => "Samlet antal bidrag",
@@ -100,7 +105,7 @@
100105
"Week Streak" => "Ugentlige bidrag i træk",
101106
"Longest Week Streak" => "Flest ugentlige bidrag i træk",
102107
"Present" => "Nuværende",
103-
"Excluding" => "Ekskluderer",
108+
"Excluding {days}" => "Ekskluderer {days}",
104109
],
105110
"de" => [
106111
"Total Contributions" => "Gesamte Beiträge",
@@ -109,7 +114,7 @@
109114
"Week Streak" => "Wochenserie",
110115
"Longest Week Streak" => "Längste Wochenserie",
111116
"Present" => "Heute",
112-
"Excluding" => "Ausgenommen",
117+
"Excluding {days}" => "Ausgenommen {days}",
113118
],
114119
"el" => [
115120
"Total Contributions" => "Συνολικές Συνεισφορές",
@@ -118,7 +123,7 @@
118123
"Week Streak" => "Εβδομαδιαία Σειρά",
119124
"Longest Week Streak" => "Μεγαλύτερη Εβδομαδιαία Σειρά",
120125
"Present" => "Σήμερα",
121-
"Excluding" => "Εξαιρούνται",
126+
"Excluding {days}" => "Εξαιρούνται {days}",
122127
],
123128
"es" => [
124129
"Total Contributions" => "Contribuciones Totales",
@@ -127,7 +132,7 @@
127132
"Week Streak" => "Racha Semanal",
128133
"Longest Week Streak" => "Racha Semanal Más Larga",
129134
"Present" => "Presente",
130-
"Excluding" => "Excluyendo",
135+
"Excluding {days}" => "Excluyendo {days}",
131136
],
132137
"fa" => [
133138
"rtl" => true,
@@ -137,6 +142,7 @@
137142
"Week Streak" => "پی‌رفت هفته",
138143
"Longest Week Streak" => "طولانی ترین پی‌رفت هفته",
139144
"Present" => "اکنون",
145+
"comma_separator" => "، ",
140146
],
141147
"fil" => [
142148
"Total Contributions" => "Kabuuang Kontribusyon",
@@ -145,7 +151,7 @@
145151
"Week Streak" => "Linggong Streak",
146152
"Longest Week Streak" => "Pinakamahabang Linggong Streak",
147153
"Present" => "Kasalukuyan",
148-
"Excluding" => "Hindi Kasama",
154+
"Excluding {days}" => "Hindi Kasama {days}",
149155
],
150156
"fr" => [
151157
"Total Contributions" => "Contributions totales",
@@ -154,7 +160,7 @@
154160
"Week Streak" => "Séquence de la semaine",
155161
"Longest Week Streak" => "Plus longue séquence hebdomadaire",
156162
"Present" => "Aujourd'hui",
157-
"Excluding" => "À l'exclusion de",
163+
"Excluding {days}" => "À l'exclusion de {days}",
158164
],
159165
"he" => [
160166
"rtl" => true,
@@ -164,7 +170,7 @@
164170
"Week Streak" => "רצף שבועי",
165171
"Longest Week Streak" => "רצף שבועי הכי ארוך",
166172
"Present" => "היום",
167-
"Excluding" => "לא כולל",
173+
"Excluding {days}" => "לא כולל {days}",
168174
],
169175
"hi" => [
170176
"Total Contributions" => "कुल योगदान",
@@ -173,7 +179,7 @@
173179
"Week Streak" => "सप्ताहिक योगदान",
174180
"Longest Week Streak" => "दीर्घ साप्ताहिक योगदान",
175181
"Present" => "आज तक",
176-
"Excluding" => "के सिवा",
182+
"Excluding {days}" => "के सिवा {days}",
177183
],
178184
"ht" => [
179185
"Total Contributions" => "kontribisyon total",
@@ -190,7 +196,7 @@
190196
"Week Streak" => "Heti sorozat",
191197
"Longest Week Streak" => "Leghosszabb heti sorozat",
192198
"Present" => "Jelen",
193-
"Excluding" => "Kivéve",
199+
"Excluding {days}" => "Kivéve {days}",
194200
],
195201
"hy" => [
196202
"Total Contributions" => "Ընդհանուր\nներդրումը",
@@ -207,7 +213,7 @@
207213
"Week Streak" => "Aksi Mingguan",
208214
"Longest Week Streak" => "Aksi Mingguan Terpanjang",
209215
"Present" => "Sekarang",
210-
"Excluding" => "Tidak termasuk",
216+
"Excluding {days}" => "Tidak termasuk {days}",
211217
],
212218
"it" => [
213219
"Total Contributions" => "Contributi Totali",
@@ -216,7 +222,7 @@
216222
"Week Streak" => "Serie Settimanale",
217223
"Longest Week Streak" => "Serie Settimanale più Lunga",
218224
"Present" => "Presente",
219-
"Excluding" => "Escludendo",
225+
"Excluding {days}" => "Escludendo {days}",
220226
],
221227
"ja" => [
222228
"date_format" => "[Y.]n.j",
@@ -226,6 +232,8 @@
226232
"Week Streak" => "週間ストリーク",
227233
"Longest Week Streak" => "最長の週間ストリーク",
228234
"Present" => "",
235+
"Excluding {days}" => "{days}を除く",
236+
"comma_separator" => "",
229237
],
230238
"kn" => [
231239
"Total Contributions" => "ಒಟ್ಟು ಕೊಡುಗೆ",
@@ -234,7 +242,7 @@
234242
"Week Streak" => "ವಾರದ ಸ್ಟ್ರೀಕ್",
235243
"Longest Week Streak" => "ಅತ್ಯಧಿಕ ವಾರದ ಸ್ಟ್ರೀಕ್",
236244
"Present" => "ಪ್ರಸ್ತುತ",
237-
"Excluding" => "ಹೊರತುಪಡಿಸಿ",
245+
"Excluding {days}" => "ಹೊರತುಪಡಿಸಿ {days}",
238246
],
239247
"ko" => [
240248
"Total Contributions" => "총 기여 수",
@@ -243,7 +251,7 @@
243251
"Week Streak" => "주간 기여 수",
244252
"Longest Week Streak" => "최대 주간 기여 수",
245253
"Present" => "현재",
246-
"Excluding" => "제외된 날",
254+
"Excluding {days}" => "제외된 날 {days}",
247255
],
248256
"mr" => [
249257
"Total Contributions" => "एकूण योगदान",
@@ -260,7 +268,7 @@
260268
"Week Streak" => "Tindakan Setiap Minggu",
261269
"Longest Week Streak" => "Tindakan Setiap Minggu Terpanjang",
262270
"Present" => "Sekarang",
263-
"Excluding" => "Mengecualikan",
271+
"Excluding {days}" => "Mengecualikan {days}",
264272
],
265273
"ne" => [
266274
"Total Contributions" => "कुल योगदान",
@@ -269,7 +277,7 @@
269277
"Week Streak" => "सप्ताहिक योगदान",
270278
"Longest Week Streak" => "सबैभन्दा लामो साप्ताहिक योगदान",
271279
"Present" => "आज सम्म",
272-
"Excluding" => "बाहेक",
280+
"Excluding {days}" => "बाहेक {days}",
273281
],
274282
"nl" => [
275283
"Total Contributions" => "Totale Bijdrage",
@@ -278,7 +286,7 @@
278286
"Week Streak" => "Week Serie",
279287
"Longest Week Streak" => "Langste Week Serie",
280288
"Present" => "Vandaag",
281-
"Excluding" => "Exclusief",
289+
"Excluding {days}" => "Exclusief {days}",
282290
],
283291
"pl" => [
284292
"Total Contributions" => "Suma Kontrybucji",
@@ -296,6 +304,7 @@
296304
"Week Streak" => "د اونۍ پرمختګ",
297305
"Longest Week Streak" => "د اونۍ تر ټولو اوږد پرمختګ",
298306
"Present" => "اوس",
307+
"comma_separator" => "، ",
299308
],
300309
"pt_BR" => [
301310
"Total Contributions" => "Total de Contribuições",
@@ -304,7 +313,7 @@
304313
"Week Streak" => "Sequência Semanal",
305314
"Longest Week Streak" => "Maior Sequência Semanal",
306315
"Present" => "Presente",
307-
"Excluding" => "Exceto",
316+
"Excluding {days}" => "Exceto {days}",
308317
],
309318
"ru" => [
310319
"Total Contributions" => "Общий вклад",
@@ -313,7 +322,7 @@
313322
"Week Streak" => "Текущая серия недель",
314323
"Longest Week Streak" => "Самая длинная серия недель",
315324
"Present" => "Сейчас",
316-
"Excluding" => "Не включая",
325+
"Excluding {days}" => "Не включая {days}",
317326
],
318327
"rw" => [
319328
"Total Contributions" => "Imisanzu yose",
@@ -330,7 +339,7 @@
330339
"Week Streak" => "निरन्तरसप्ताहाः",
331340
"Longest Week Streak" => "दीर्घतमाः निरन्तरसप्ताहाः",
332341
"Present" => "वर्तमान",
333-
"Excluding" => "बहिष्करणम्",
342+
"Excluding {days}" => "बहिष्करणम् {days}",
334343
],
335344
"sr" => [
336345
"Total Contributions" => "Укупно додавања",
@@ -339,7 +348,7 @@
339348
"Week Streak" => "Недељна серија",
340349
"Longest Week Streak" => "Најдужа недељена серија",
341350
"Present" => "Данас",
342-
"Excluding" => "Искључујући",
351+
"Excluding {days}" => "Искључујући {days}",
343352
],
344353
"su" => [
345354
"Total Contributions" => "Total Kontribusi",
@@ -348,7 +357,7 @@
348357
"Week Streak" => "Aksi Unggal Minggon",
349358
"Longest Week Streak" => "Aksi Unggal Minggon Pangpanjangna",
350359
"Present" => "Ayeuna",
351-
"Excluding" => "Teu Kaasup",
360+
"Excluding {days}" => "Teu Kaasup {days}",
352361
],
353362
"sv" => [
354363
"Total Contributions" => "Totalt antal uppladningar",
@@ -381,7 +390,7 @@
381390
"Week Streak" => "สตรีคประจำสัปดาห์",
382391
"Longest Week Streak" => "สตรีคประจำสัปดาห์\nที่ยาวนานที่สุด",
383392
"Present" => "ปัจจุบัน",
384-
"Excluding" => "ยกเว้น",
393+
"Excluding {days}" => "ยกเว้น {days}",
385394
],
386395
"tr" => [
387396
"Total Contributions" => "Toplam Katkı",
@@ -390,7 +399,7 @@
390399
"Week Streak" => "Haftalık Seri",
391400
"Longest Week Streak" => "En Uzun Haftalık Seri",
392401
"Present" => "Şu an",
393-
"Excluding" => "Hariç",
402+
"Excluding {days}" => "Hariç {days}",
394403
],
395404
"uk" => [
396405
"Total Contributions" => "Загальний вклад",
@@ -399,7 +408,7 @@
399408
"Week Streak" => "Діяльність за тиждень",
400409
"Longest Week Streak" => "Найбільша к-сть тижнів",
401410
"Present" => "Наразі",
402-
"Excluding" => "Виключаючи",
411+
"Excluding {days}" => "Виключаючи {days}",
403412
],
404413
"ur_PK" => [
405414
"rtl" => true,
@@ -409,7 +418,8 @@
409418
"Week Streak" => "ہفتہ وار تسلسل",
410419
"Longest Week Streak" => "طویل ترین ہفتہ وار تسلسل",
411420
"Present" => "حاظر",
412-
"Excluding" => "خارج",
421+
"Excluding {days}" => "خارج {days}",
422+
"comma_separator" => "، ",
413423
],
414424
"vi" => [
415425
"Total Contributions" => "Tổng số đóng góp",
@@ -418,7 +428,7 @@
418428
"Week Streak" => "Chuỗi tuần",
419429
"Longest Week Streak" => "Chuỗi tuần lớn nhất",
420430
"Present" => "Hiện tại",
421-
"Excluding" => "Ngoại trừ",
431+
"Excluding {days}" => "Ngoại trừ {days}",
422432
],
423433
"yo" => [
424434
"Total Contributions" => "Lapapọ ilowosi",
@@ -427,7 +437,7 @@
427437
"Week Streak" => "ṣiṣan ọsẹ",
428438
"Longest Week Streak" => "gunjulo ọsẹ ṣiṣan",
429439
"Present" => "lọwọlọwọ",
430-
"Excluding" => "Yato si",
440+
"Excluding {days}" => "Yato si {days}",
431441
],
432442
"zh" => "zh_Hans",
433443
"zh_Hans" => [
@@ -437,7 +447,8 @@
437447
"Week Streak" => "周连续贡献",
438448
"Longest Week Streak" => "最长周连续贡献",
439449
"Present" => "至今",
440-
"Excluding" => "除外",
450+
"Excluding {days}" => "除外 {days}",
451+
"comma_separator" => "",
441452
],
442453
"zh_Hant" => [
443454
"Total Contributions" => "合計貢獻",
@@ -446,6 +457,7 @@
446457
"Week Streak" => "周連續貢獻",
447458
"Longest Week Streak" => "最常周連續貢獻",
448459
"Present" => "至今",
449-
"Excluding" => "除外",
460+
"Excluding {days}" => "除外 {days}",
461+
"comma_separator" => "",
450462
],
451463
];

0 commit comments

Comments
 (0)