feat(web): one date standard across the UI — "25 Qer 14:30"
Dates were a mix: catalog-formatted "25 Qershor 20:01" where screens used
formatRelativeDateTime, and browser-locale "7/6/2026, 9:34 AM" in ~20
places that called raw toLocaleString/-Date-/-Time-String. Unified:
- common.monthsShort in both catalogs (Jan/Shk/…/Qer/Korr/…/Dhj);
formatDate ("25 Qer", year only when not current), formatDateTime
("25 Qer 14:30", optional seconds), formatClock ("HH:mm", 24h) in
lib/format.ts. formatRelativeDateTime keeps Sot/Dje and switches its
older-dates branch to the same short months.
- Every raw toLocale* DATE call swept: shifts X-report line, plan
effective dates, sub version labels, drawer today feed, snapshot
tooltips, device footer checkedAt, event-detail timestamp (keeps
seconds — chain evidence), tariff composer active-since + version
sidebar. Number toLocaleString (thousand separators) untouched.
The catalogs in this commit also carry the keys for the two follow-up
commits (fee breakdown, composer increment labels).
Claude-Session: https://claude.ai/code/session_01Xcm6ikLgGoCxxHrxtjkk5V
This commit is contained in:
@@ -35,6 +35,8 @@ export const sq = {
|
||||
"Nëntor",
|
||||
"Dhjetor",
|
||||
],
|
||||
// Short month names — the UI-wide date standard ("25 Qer", "7 Korr").
|
||||
monthsShort: ["Jan", "Shk", "Mar", "Pri", "Maj", "Qer", "Korr", "Gush", "Sht", "Tet", "Nën", "Dhj"],
|
||||
},
|
||||
auth: {
|
||||
title: "Sistemi i Parkimit",
|
||||
@@ -332,7 +334,13 @@ export const sq = {
|
||||
bandDuration: "Kohëzgjatja e brezit",
|
||||
hoursUnit: "orë",
|
||||
egHours: "p.sh. 2",
|
||||
pricePerIncrement: "Çmimi / interval (orë)",
|
||||
pricePerIncrement: "Çmimi / interval (min)",
|
||||
pricePerHour: "Çmimi / orë",
|
||||
pricePerN: "Çmimi / {{min}} min",
|
||||
modeFlatN: "Çmim fiks / {{min}} min",
|
||||
perHourEquiv: "= {{amount}} / orë",
|
||||
incrementWarning:
|
||||
"Kujdes: intervali i faturimit është {{min}} min — çdo çmim më poshtë faturohet për çdo {{min}} minuta të filluara, JO për orë.",
|
||||
thereafter: "më pas (i hapur)",
|
||||
remove: "Hiq",
|
||||
addBlock: "+ Shto bllok",
|
||||
@@ -574,6 +582,16 @@ export const sq = {
|
||||
graceExpires: "Afati skadon",
|
||||
curve: "Kurba sipas kohëzgjatjes",
|
||||
curveHint: "Tarifa nga hyrja për disa kohëzgjatje — shih ku rrafshohet kufiri ditor ose ndryshojnë dritaret.",
|
||||
bd: {
|
||||
title: "Si prodhohet shuma",
|
||||
rounding: "{{raw}} min qëndrim → {{billed}} min të faturuara (njësi {{inc}} min)",
|
||||
grace: "Falas — brenda minutave të hirit ({{min}} min)",
|
||||
package: "paketë dritareje",
|
||||
step: "Dita {{day}}: qëndrim deri në {{hours}}h — total",
|
||||
stepRepeated: "Dita {{day}}: mbi shkallën më të lartë — totali ditor",
|
||||
cap: "U zbatua kufiri ditor {{cap}} (dita {{day}})",
|
||||
total: "Totali",
|
||||
},
|
||||
},
|
||||
subs: {
|
||||
title: "Abonimet",
|
||||
|
||||
Reference in New Issue
Block a user