mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-03-07 02:18:07 +01:00
improve i18n for lists of text/labels (#20696)
This commit is contained in:
@@ -3,6 +3,23 @@ import { t } from "i18next";
|
||||
import { getTranslatedLabel } from "./i18n";
|
||||
import { capitalizeFirstLetter } from "./stringUtil";
|
||||
|
||||
function formatZonesList(zones: string[]): string {
|
||||
if (zones.length === 0) return "";
|
||||
if (zones.length === 1) return zones[0];
|
||||
if (zones.length === 2) {
|
||||
return t("list.two", {
|
||||
0: zones[0],
|
||||
1: zones[1],
|
||||
});
|
||||
}
|
||||
|
||||
const allButLast = zones.slice(0, -1).join(", ");
|
||||
return t("list.many", {
|
||||
items: allButLast,
|
||||
last: zones[zones.length - 1],
|
||||
});
|
||||
}
|
||||
|
||||
export function getLifecycleItemDescription(
|
||||
lifecycleItem: TrackingDetailsSequence,
|
||||
) {
|
||||
@@ -24,7 +41,7 @@ export function getLifecycleItemDescription(
|
||||
return t("trackingDetails.lifecycleItemDesc.entered_zone", {
|
||||
ns: "views/explore",
|
||||
label,
|
||||
zones: lifecycleItem.data.zones.join(" and ").replaceAll("_", " "),
|
||||
zones: formatZonesList(lifecycleItem.data.zones),
|
||||
});
|
||||
case "active":
|
||||
return t("trackingDetails.lifecycleItemDesc.active", {
|
||||
|
||||
Reference in New Issue
Block a user