mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-07-14 16:01:13 +03:00
fix: fix lpr setting item i18n
This commit is contained in:
parent
19dcad7989
commit
893d9da3f3
@ -28,7 +28,11 @@ export function KnownPlatesField(props: FieldProps) {
|
|||||||
| ConfigFormContext
|
| ConfigFormContext
|
||||||
| undefined;
|
| undefined;
|
||||||
|
|
||||||
const { t } = useTranslation(["views/settings", "common"]);
|
const configNamespace =
|
||||||
|
formContext?.i18nNamespace ??
|
||||||
|
(formContext?.level === "camera" ? "config/cameras" : "config/global");
|
||||||
|
const { t: fallbackT } = useTranslation(["common", configNamespace]);
|
||||||
|
const t = formContext?.t ?? fallbackT;
|
||||||
|
|
||||||
const data: KnownPlatesData = useMemo(() => {
|
const data: KnownPlatesData = useMemo(() => {
|
||||||
if (!formData || typeof formData !== "object" || Array.isArray(formData)) {
|
if (!formData || typeof formData !== "object" || Array.isArray(formData)) {
|
||||||
@ -39,8 +43,14 @@ export function KnownPlatesField(props: FieldProps) {
|
|||||||
|
|
||||||
const entries = useMemo(() => Object.entries(data), [data]);
|
const entries = useMemo(() => Object.entries(data), [data]);
|
||||||
|
|
||||||
const title = (schema as RJSFSchema).title;
|
const id = idSchema?.$id ?? props.name;
|
||||||
const description = (schema as RJSFSchema).description;
|
const sectionPrefix = formContext?.sectionI18nPrefix;
|
||||||
|
|
||||||
|
const title =
|
||||||
|
t(`${sectionPrefix}.${id}.label`) ?? (schema as RJSFSchema).title;
|
||||||
|
const description =
|
||||||
|
t(`${sectionPrefix}.${id}.description`) ??
|
||||||
|
(schema as RJSFSchema).description;
|
||||||
|
|
||||||
const hasItems = entries.length > 0;
|
const hasItems = entries.length > 0;
|
||||||
const emptyPath = useMemo(() => [] as FieldPathList, []);
|
const emptyPath = useMemo(() => [] as FieldPathList, []);
|
||||||
|
|||||||
@ -47,7 +47,11 @@ export function ReplaceRulesField(props: FieldProps) {
|
|||||||
| ConfigFormContext
|
| ConfigFormContext
|
||||||
| undefined;
|
| undefined;
|
||||||
|
|
||||||
const { t } = useTranslation(["common"]);
|
const configNamespace =
|
||||||
|
formContext?.i18nNamespace ??
|
||||||
|
(formContext?.level === "camera" ? "config/cameras" : "config/global");
|
||||||
|
const { t: fallbackT } = useTranslation(["common", configNamespace]);
|
||||||
|
const t = formContext?.t ?? fallbackT;
|
||||||
|
|
||||||
const rules: ReplaceRule[] = useMemo(() => {
|
const rules: ReplaceRule[] = useMemo(() => {
|
||||||
if (!Array.isArray(formData)) {
|
if (!Array.isArray(formData)) {
|
||||||
@ -60,10 +64,21 @@ export function ReplaceRulesField(props: FieldProps) {
|
|||||||
() => getItemSchema(schema as RJSFSchema),
|
() => getItemSchema(schema as RJSFSchema),
|
||||||
[schema],
|
[schema],
|
||||||
);
|
);
|
||||||
const title = (schema as RJSFSchema).title;
|
|
||||||
const description = (schema as RJSFSchema).description;
|
const id = idSchema?.$id ?? props.name;
|
||||||
const patternTitle = getPropertyTitle(itemSchema, "pattern");
|
const sectionPrefix = formContext?.sectionI18nPrefix;
|
||||||
const replacementTitle = getPropertyTitle(itemSchema, "replacement");
|
|
||||||
|
const title =
|
||||||
|
t(`${sectionPrefix}.${id}.label`) ?? (schema as RJSFSchema).title;
|
||||||
|
const description =
|
||||||
|
t(`${sectionPrefix}.${id}.description`) ??
|
||||||
|
(schema as RJSFSchema).description;
|
||||||
|
const patternTitle =
|
||||||
|
t(`${sectionPrefix}.${id}.pattern.label`) ??
|
||||||
|
getPropertyTitle(itemSchema, "pattern", t);
|
||||||
|
const replacementTitle =
|
||||||
|
t(`${sectionPrefix}.${id}.replacement.label`) ??
|
||||||
|
getPropertyTitle(itemSchema, "replacement", t);
|
||||||
|
|
||||||
const hasItems = rules.length > 0;
|
const hasItems = rules.length > 0;
|
||||||
const emptyPath = useMemo(() => [] as FieldPathList, []);
|
const emptyPath = useMemo(() => [] as FieldPathList, []);
|
||||||
|
|||||||
@ -157,8 +157,9 @@ export function ObjectFieldTemplate(props: ObjectFieldTemplateProps) {
|
|||||||
|
|
||||||
const hasModifiedDescendants = checkSubtreeModified(fieldPath);
|
const hasModifiedDescendants = checkSubtreeModified(fieldPath);
|
||||||
const [isOpen, setIsOpen] = useState(hasModifiedDescendants);
|
const [isOpen, setIsOpen] = useState(hasModifiedDescendants);
|
||||||
const resetKey = `${formContext?.level ?? "global"}::${formContext?.cameraName ?? "global"
|
const resetKey = `${formContext?.level ?? "global"}::${
|
||||||
}`;
|
formContext?.cameraName ?? "global"
|
||||||
|
}`;
|
||||||
const lastResetKeyRef = useRef<string | null>(null);
|
const lastResetKeyRef = useRef<string | null>(null);
|
||||||
|
|
||||||
// Auto-expand collapsible when modifications are detected
|
// Auto-expand collapsible when modifications are detected
|
||||||
@ -336,12 +337,12 @@ export function ObjectFieldTemplate(props: ObjectFieldTemplateProps) {
|
|||||||
|
|
||||||
const label = domain
|
const label = domain
|
||||||
? t(`${sectionI18nPrefix}.${domain}.${groupKey}`, {
|
? t(`${sectionI18nPrefix}.${domain}.${groupKey}`, {
|
||||||
ns: "config/groups",
|
ns: "config/groups",
|
||||||
defaultValue: humanizeKey(groupKey),
|
defaultValue: humanizeKey(groupKey),
|
||||||
})
|
})
|
||||||
: t(`groups.${groupKey}`, {
|
: t(`groups.${groupKey}`, {
|
||||||
defaultValue: humanizeKey(groupKey),
|
defaultValue: humanizeKey(groupKey),
|
||||||
});
|
});
|
||||||
|
|
||||||
const groupInfo = { groupKey, label, items: ordered };
|
const groupInfo = { groupKey, label, items: ordered };
|
||||||
for (const item of ordered) {
|
for (const item of ordered) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user