diff --git a/web/public/locales/be/audio.json b/web/public/locales/be/audio.json new file mode 100644 index 0000000000..78b5be13de --- /dev/null +++ b/web/public/locales/be/audio.json @@ -0,0 +1,502 @@ +{ + "speech": "Маўленне", + "babbling": "Мармытанне", + "yell": "Крык", + "bellow": "Рык", + "whoop": "Вокліч", + "whispering": "Шэпт", + "laughter": "Смех", + "snicker": "Пасмейванне", + "crying": "Плач", + "sigh": "Уздых", + "singing": "Спевы", + "choir": "Хор", + "yodeling": "Ёдль", + "chant": "Спеў", + "mantra": "Мантра", + "child_singing": "Спевы Дзіцяці", + "synthetic_singing": "Сінтэзаваныя Спевы", + "rapping": "Рэп", + "humming": "Мармытанне", + "groan": "Стогн", + "grunt": "Рохканне", + "whistling": "Свіст", + "breathing": "Дыханне", + "wheeze": "Хрыпы", + "snoring": "Хропанне", + "gasp": "Уздох", + "pant": "Задышка", + "snort": "Фырканне", + "cough": "Кашаль", + "throat_clearing": "Пакашліванне", + "sneeze": "Чханне", + "sniff": "Сопанне", + "run": "Бег", + "shuffle": "Шорганне", + "footsteps": "Крокі", + "chewing": "Жаванне", + "biting": "Кусанне", + "gargling": "Паласканне Горла", + "stomach_rumble": "Бурчанне ў Жываце", + "burping": "Адрыжка", + "hiccup": "Ікаўка", + "fart": "Пярдзёж", + "hands": "Рукі", + "finger_snapping": "Пстрычка Пальцамі", + "clapping": "Пляск", + "heartbeat": "Сэрцабіцце", + "heart_murmur": "Шум у Сэрцы", + "cheering": "Воклічы Радасці", + "applause": "Апладысменты", + "chatter": "Балбатня", + "crowd": "Натоўп", + "children_playing": "Дзеці Гуляюць", + "animal": "Жывёла", + "pets": "Хатнія Жывёлы", + "dog": "Сабака", + "bark": "Брэх", + "yip": "Вяўканне", + "howl": "Выццё", + "bow_wow": "Гаў-Гаў", + "growling": "Рык", + "whimper_dog": "Сабачае Скуголенне", + "cat": "Кот", + "purr": "Мурлыканне", + "meow": "Мяўканне", + "hiss": "Шыпенне", + "caterwaul": "Кацінае Выццё", + "livestock": "Свойская Жывёла", + "horse": "Конь", + "clip_clop": "Цокат Капытоў", + "neigh": "Іржанне", + "cattle": "Буйная Рагатая Жывёла", + "moo": "Мыканне", + "cowbell": "Каровін Звон", + "pig": "Свіння", + "oink": "Рох-Рох", + "goat": "Каза", + "bleat": "Бляянне", + "sheep": "Авечка", + "fowl": "Свойская Птушка", + "chicken": "Курыца", + "cluck": "Кудахтанне", + "cock_a_doodle_doo": "Кукарэку", + "turkey": "Індык", + "gobble": "Клакатанне Індыка", + "duck": "Качка", + "quack": "Кваканне Качкі", + "goose": "Гусь", + "honk": "Гудок", + "wild_animals": "Дзікія Жывёлы", + "roaring_cats": "Рык Вялікіх Кошак", + "roar": "Роў", + "bird": "Птушка", + "chirp": "Чырыканне", + "squawk": "Рэзкі Крык Птушкі", + "pigeon": "Голуб", + "coo": "Туркатанне", + "crow": "Варона", + "caw": "Крык Вароны", + "owl": "Сава", + "hoot": "Крык Савы", + "flapping_wings": "Лопанне Крылаў", + "dogs": "Сабакі", + "rats": "Пацукі", + "mouse": "Мыш", + "patter": "Тупат", + "insect": "Насякомае", + "cricket": "Цвыркун", + "mosquito": "Камар", + "fly": "Муха", + "buzz": "Гудзенне", + "frog": "Жаба", + "croak": "Кваканне", + "snake": "Змяя", + "rattle": "Бразгат", + "whale_vocalization": "Спевы Кітоў", + "music": "Музыка", + "musical_instrument": "Музычны Інструмент", + "plucked_string_instrument": "Шчыпковы Струнны Інструмент", + "guitar": "Гітара", + "electric_guitar": "Электрагітара", + "bass_guitar": "Бас-Гітара", + "acoustic_guitar": "Акустычная Гітара", + "steel_guitar": "Стыл-Гітара", + "tapping": "Пастукванне", + "strum": "Перабор Струн", + "banjo": "Банджа", + "sitar": "Сітар", + "mandolin": "Мандаліна", + "zither": "Цытра", + "ukulele": "Укулеле", + "keyboard": "Клавіятура", + "piano": "Піяніна", + "electric_piano": "Электрапіяніна", + "organ": "Арган", + "electronic_organ": "Электронны Арган", + "hammond_organ": "Арган Hammond", + "synthesizer": "Сінтэзатар", + "sampler": "Сэмплер", + "harpsichord": "Клавесін", + "percussion": "Перкусія", + "drum_kit": "Барабанная Ўстаноўка", + "drum_machine": "Драм-Машына", + "drum": "Барабан", + "snare_drum": "Малы Барабан", + "rimshot": "Рымшот", + "drum_roll": "Барабанны Дроб", + "bass_drum": "Бас-Барабан", + "timpani": "Тымпаны", + "tabla": "Табла", + "cymbal": "Тарэлка", + "hi_hat": "Хай-Хэт", + "wood_block": "Драўляны Блок", + "tambourine": "Тамбурын", + "maraca": "Маракас", + "gong": "Гонг", + "tubular_bells": "Трубчастыя Званы", + "mallet_percussion": "Перкусія з Малаточкамі", + "marimba": "Марымба", + "glockenspiel": "Глакеншпіль", + "vibraphone": "Вібрафон", + "steelpan": "Стылпан", + "orchestra": "Аркестр", + "brass_instrument": "Духавы Медны Інструмент", + "french_horn": "Валторна", + "trumpet": "Труба", + "trombone": "Трамбон", + "bowed_string_instrument": "Смыковы Струнны Інструмент", + "string_section": "Струнная Група", + "violin": "Скрыпка", + "pizzicato": "Пічыката", + "cello": "Віяланчэль", + "double_bass": "Кантрабас", + "wind_instrument": "Духавы Інструмент", + "flute": "Флейта", + "saxophone": "Саксафон", + "clarinet": "Кларнет", + "harp": "Арфа", + "bell": "Звон", + "church_bell": "Царкоўны Звон", + "jingle_bell": "Бразготка", + "bicycle_bell": "Веласіпедны Званок", + "tuning_fork": "Камертон", + "chime": "Перазвон", + "wind_chime": "Музыка Ветру", + "harmonica": "Губны Гармонік", + "accordion": "Акардэон", + "bagpipes": "Дуда", + "didgeridoo": "Дыджэрыду", + "theremin": "Тэрменвокс", + "singing_bowl": "Спеўная Чаша", + "scratching": "Драпанне", + "pop_music": "Поп-Музыка", + "hip_hop_music": "Хіп-Хоп", + "beatboxing": "Бітбоксінг", + "rock_music": "Рок-Музыка", + "heavy_metal": "Хэві-Метал", + "punk_rock": "Панк-Рок", + "grunge": "Грандж", + "progressive_rock": "Прагрэсіўны Рок", + "rock_and_roll": "Рок-Н-Рол", + "psychedelic_rock": "Псіхадэлічны Рок", + "rhythm_and_blues": "Рытм-Энд-Блюз", + "soul_music": "Соўл", + "reggae": "Рэгі", + "country": "Кантры", + "swing_music": "Свінг", + "bluegrass": "Блюграс", + "funk": "Фанк", + "folk_music": "Народная Музыка", + "middle_eastern_music": "Музыка Блізкага Усходу", + "jazz": "Джаз", + "disco": "Дыска", + "classical_music": "Класічная Музыка", + "opera": "Опера", + "electronic_music": "Электронная Музыка", + "house_music": "Хаус", + "techno": "Тэхна", + "dubstep": "Дабстэп", + "drum_and_bass": "Драм-Энд-Бэйс", + "electronica": "Электроніка", + "electronic_dance_music": "Электронная Танцавальная Музыка", + "ambient_music": "Эмбіент", + "trance_music": "Транс", + "music_of_latin_america": "Музыка Лацінскай Амерыкі", + "salsa_music": "Сальса", + "flamenco": "Фламенка", + "blues": "Блюз", + "music_for_children": "Музыка для Дзяцей", + "new-age_music": "Музыка Нью-Эйдж", + "vocal_music": "Вакальная Музыка", + "a_capella": "А Капэла", + "music_of_africa": "Музыка Афрыкі", + "afrobeat": "Афрабіт", + "christian_music": "Хрысціянская Музыка", + "gospel_music": "Госпел", + "music_of_asia": "Музыка Азіі", + "carnatic_music": "Карнатычная Музыка", + "music_of_bollywood": "Музыка Балівуда", + "ska": "Ска", + "traditional_music": "Традыцыйная Музыка", + "independent_music": "Незалежная Музыка", + "song": "Песня", + "background_music": "Фонавая Музыка", + "theme_music": "Тэматычная Музыка", + "jingle": "Джынгл", + "soundtrack_music": "Музыка Саўндтрэка", + "lullaby": "Калыханка", + "video_game_music": "Музыка Відэагульняў", + "christmas_music": "Калядная Музыка", + "dance_music": "Танцавальная Музыка", + "wedding_music": "Вясельная Музыка", + "happy_music": "Вясёлая Музыка", + "sad_music": "Сумная Музыка", + "tender_music": "Лагодная Музыка", + "exciting_music": "Энергічная Музыка", + "angry_music": "Агрэсіўная Музыка", + "scary_music": "Жудасная Музыка", + "wind": "Вецер", + "rustling_leaves": "Шамаценне Лісця", + "wind_noise": "Шум Ветру", + "thunderstorm": "Навальніца", + "thunder": "Грымоты", + "water": "Вада", + "rain": "Дождж", + "raindrop": "Кропля Дажджу", + "rain_on_surface": "Дождж па Паверхні", + "stream": "Ручай", + "waterfall": "Вадаспад", + "ocean": "Акіян", + "waves": "Хвалі", + "steam": "Пара", + "gurgling": "Бурчанне", + "fire": "Агонь", + "crackle": "Патрэскванне", + "vehicle": "Транспартны Сродак", + "boat": "Лодка", + "sailboat": "Ветразнік", + "rowboat": "Лодка на Вёслах", + "motorboat": "Маторная Лодка", + "ship": "Карабель", + "motor_vehicle": "Аўтатранспарт", + "car": "Аўтамабіль", + "toot": "Гудок", + "car_alarm": "Аўтасігналізацыя", + "power_windows": "Электрычныя Шклапад'ёмнікі", + "skidding": "Прабуксоўка", + "tire_squeal": "Віск Шын", + "car_passing_by": "Аўтамабіль Праязджае", + "race_car": "Гоначны Аўтамабіль", + "truck": "Грузавік", + "air_brake": "Пнеўматычны Тормаз", + "air_horn": "Пнеўматычны Сігнал", + "reversing_beeps": "Сігналы Задняга Ходу", + "ice_cream_truck": "Фургон з Марожаным", + "bus": "Аўтобус", + "emergency_vehicle": "Аварыйная Машына", + "police_car": "Паліцэйскі Аўтамабіль", + "ambulance": "Хуткая Дапамога", + "fire_engine": "Пажарная Машына", + "motorcycle": "Матацыкл", + "traffic_noise": "Шум Дарожнага Руху", + "rail_transport": "Чыгуначны Транспарт", + "train": "Цягнік", + "train_whistle": "Свісток Цягніка", + "train_horn": "Гудок Цягніка", + "railroad_car": "Чыгуначны Вагон", + "train_wheels_squealing": "Віск Колаў Цягніка", + "subway": "Метро", + "aircraft": "Паветранае Судна", + "aircraft_engine": "Авіяцыйны Рухавік", + "jet_engine": "Рэактыўны Рухавік", + "propeller": "Прапелер", + "helicopter": "Верталёт", + "fixed-wing_aircraft": "Самалёт", + "bicycle": "Веласіпед", + "skateboard": "Скейтборд", + "engine": "Рухавік", + "light_engine": "Лёгкі Рухавік", + "dental_drill's_drill": "Зубная Бармашына", + "lawn_mower": "Газонакасілка", + "chainsaw": "Бензапіла", + "medium_engine": "Сярэдні Рухавік", + "heavy_engine": "Цяжкі Рухавік", + "engine_knocking": "Стук Рухавіка", + "engine_starting": "Запуск Рухавіка", + "idling": "Халасты Ход", + "accelerating": "Паскарэнне", + "door": "Дзверы", + "doorbell": "Дзвярны Званок", + "ding-dong": "Дзін-Дон", + "sliding_door": "Рассоўныя Дзверы", + "slam": "Гучнае Зачыненне", + "knock": "Стук", + "tap": "Пастукванне", + "squeak": "Піск", + "cupboard_open_or_close": "Шафа Адчыняецца або Зачыняецца", + "drawer_open_or_close": "Шуфляда Адчыняецца або Зачыняецца", + "dishes": "Посуд", + "cutlery": "Сталовыя Прыборы", + "chopping": "Сяканне", + "frying": "Смажанне", + "microwave_oven": "Мікрахвалевая Печ", + "blender": "Блендэр", + "water_tap": "Водаправодны Кран", + "sink": "Ракавіна", + "bathtub": "Ванна", + "hair_dryer": "Фен", + "toilet_flush": "Спуск Вады ў Туалеце", + "toothbrush": "Зубная Шчотка", + "electric_toothbrush": "Электрычная Зубная Шчотка", + "vacuum_cleaner": "Пыласос", + "zipper": "Маланка", + "keys_jangling": "Бразгат Ключоў", + "coin": "Манета", + "scissors": "Нажніцы", + "electric_shaver": "Электрабрытва", + "shuffling_cards": "Тасаванне Карт", + "typing": "Набор Тэксту", + "typewriter": "Друкарская Машынка", + "computer_keyboard": "Камп'ютарная Клавіятура", + "writing": "Пісанне", + "alarm": "Сігнал Трывогі", + "telephone": "Тэлефон", + "telephone_bell_ringing": "Тэлефонны Званок", + "ringtone": "Рынгтон", + "telephone_dialing": "Набор Нумара", + "dial_tone": "Гудок Лініі", + "busy_signal": "Сігнал «Занята»", + "alarm_clock": "Будзільнік", + "siren": "Сірэна", + "civil_defense_siren": "Сірэна Грамадзянскай Абароны", + "buzzer": "Зумер", + "smoke_detector": "Датчык Дыму", + "fire_alarm": "Пажарная Сігналізацыя", + "foghorn": "Туманны Гудок", + "whistle": "Свісток", + "steam_whistle": "Паравы Свісток", + "mechanisms": "Механізмы", + "ratchet": "Трашчотка", + "clock": "Гадзіннік", + "tick": "Цік", + "tick-tock": "Цік-Так", + "gears": "Шасцярні", + "pulleys": "Шківы", + "sewing_machine": "Швейная Машына", + "mechanical_fan": "Вентылятар", + "air_conditioning": "Кандыцыянаванне Паветра", + "cash_register": "Касавы Апарат", + "printer": "Прынтар", + "camera": "Камера", + "single-lens_reflex_camera": "Люстраны Фотаапарат", + "tools": "Інструменты", + "hammer": "Молат", + "jackhammer": "Адбойны Молат", + "sawing": "Пілаванне", + "filing": "Апілоўванне", + "sanding": "Шліфаванне", + "power_tool": "Электраінструмент", + "drill": "Дрыль", + "explosion": "Выбух", + "gunshot": "Стрэл", + "machine_gun": "Кулямёт", + "fusillade": "Залп", + "artillery_fire": "Артылерыйскі Агонь", + "cap_gun": "Пугач", + "fireworks": "Феерверк", + "firecracker": "Петарда", + "burst": "Лопанне", + "eruption": "Вывяржэнне", + "boom": "Грукат", + "wood": "Дрэва", + "chop": "Удар", + "splinter": "Трэска", + "crack": "Трэск", + "glass": "Шкло", + "chink": "Дзынканне", + "shatter": "Разбіванне", + "silence": "Цішыня", + "sound_effect": "Гукавы Эфект", + "environmental_noise": "Навакольны Шум", + "static": "Статычныя Перашкоды", + "white_noise": "Белы Шум", + "pink_noise": "Ружовы Шум", + "television": "Тэлевізар", + "radio": "Радыё", + "field_recording": "Запіс на Прыродзе", + "scream": "Віск", + "chird": "Дзіця", + "change_ringing": "Перазвон", + "shofar": "Шафар", + "liquid": "Вадкасць", + "splash": "Усплёск", + "slosh": "Плюханне", + "squish": "Чвяканне", + "drip": "Капанне", + "pour": "Пераліванне", + "trickle": "Цурчанне", + "gush": "Струя", + "fill": "Запаўненне", + "spray": "Распыленне", + "pump": "Помпа", + "stir": "Размешванне", + "boiling": "Кіпенне", + "sonar": "Санар", + "arrow": "Страла", + "whoosh": "Свіст", + "thump": "Глухі Ўдар", + "thunk": "Глухі Стук", + "electronic_tuner": "Электронны Цюнер", + "effects_unit": "Блок Эфектаў", + "chorus_effect": "Эфект Хору", + "basketball_bounce": "Адскок Баскетбольнага Мяча", + "bang": "Бразгат", + "slap": "Шлёпанне", + "whack": "Хлёсткі Ўдар", + "smash": "Грукат", + "breaking": "Разбіванне", + "bouncing": "Адскокванне", + "whip": "Бізун", + "flap": "Лопанне", + "scratch": "Драпанне", + "scrape": "Скрэбанне", + "rub": "Трэнне", + "roll": "Перакат", + "crushing": "Драбленне", + "crumpling": "Шамаценне", + "tearing": "Рванне", + "beep": "Гукавы Сігнал", + "ping": "Пінг", + "ding": "Дзынь", + "clang": "Бразгат Металу", + "squeal": "Віск", + "creak": "Скрып", + "rustle": "Шамаценне", + "whir": "Жужжанне", + "clatter": "Грукатанне", + "sizzle": "Шыпенне на Патэльні", + "clicking": "Клацанне", + "clickety_clack": "Перастук Колаў", + "rumble": "Гул", + "plop": "Плюх", + "hum": "Гудзенне", + "zing": "Звон", + "boing": "Пружынны Звон", + "crunch": "Хруст", + "sine_wave": "Сінусоіда", + "harmonic": "Гармоніка", + "chirp_tone": "Чырпаваны Сігнал", + "pulse": "Пульс", + "inside": "У Памяшканні", + "outside": "На Вуліцы", + "reverberation": "Рэверберацыя", + "echo": "Рэха", + "noise": "Шум", + "mains_hum": "Гудзенне Сеткі", + "distortion": "Скажэнне", + "sidetone": "Мясцовы Эфект", + "cacophony": "Какафонія", + "throbbing": "Пульсацыя", + "vibration": "Вібрацыя" +} diff --git a/web/public/locales/be/common.json b/web/public/locales/be/common.json new file mode 100644 index 0000000000..62e4a2d45f --- /dev/null +++ b/web/public/locales/be/common.json @@ -0,0 +1,331 @@ +{ + "time": { + "untilForTime": "Да {{time}}", + "untilForRestart": "Да перазапуску Frigate.", + "untilRestart": "Да перазапуску", + "never": "Ніколі", + "ago": "{{timeAgo}} таму", + "justNow": "Толькі што", + "today": "Сёння", + "yesterday": "Учора", + "last7": "Апошнія 7 дзён", + "last14": "Апошнія 14 дзён", + "last30": "Апошнія 30 дзён", + "thisWeek": "Гэты тыдзень", + "lastWeek": "Мінулы тыдзень", + "thisMonth": "Гэты месяц", + "lastMonth": "Мінулы месяц", + "5minutes": "5 хвілін", + "10minutes": "10 хвілін", + "30minutes": "30 хвілін", + "1hour": "1 гадзіна", + "12hours": "12 гадзін", + "24hours": "24 гадзіны", + "pm": "вечара", + "am": "раніцы", + "yr": "{{time}} г", + "year_one": "{{time}} год", + "year_few": "{{time}} гады", + "year_many": "{{time}} гадоў", + "mo": "{{time}} мес", + "month_one": "{{time}} месяц", + "month_few": "{{time}} месяцы", + "month_many": "{{time}} месяцаў", + "d": "{{time}} д", + "day_one": "{{time}} дзень", + "day_few": "{{time}} дні", + "day_many": "{{time}} дзён", + "h": "{{time}} гадз", + "hour_one": "{{time}} гадзіна", + "hour_few": "{{time}} гадзіны", + "hour_many": "{{time}} гадзін", + "m": "{{time}} хв", + "minute_one": "{{time}} хвіліна", + "minute_few": "{{time}} хвіліны", + "minute_many": "{{time}} хвілін", + "s": "{{time}} с", + "second_one": "{{time}} секунда", + "second_few": "{{time}} секунды", + "second_many": "{{time}} секунд", + "formattedTimestamp": { + "12hour": "d MMM, h:mm:ss aaa", + "24hour": "d MMM, HH:mm:ss" + }, + "formattedTimestamp2": { + "12hour": "dd.MM h:mm:ssa", + "24hour": "d MMM HH:mm:ss" + }, + "formattedTimestampHourMinute": { + "12hour": "h:mm aaa", + "24hour": "HH:mm" + }, + "formattedTimestampHourMinuteSecond": { + "12hour": "h:mm:ss aaa", + "24hour": "HH:mm:ss" + }, + "formattedTimestampMonthDayHourMinute": { + "12hour": "d MMM, h:mm aaa", + "24hour": "d MMM, HH:mm" + }, + "formattedTimestampMonthDayYear": { + "12hour": "d MMM yyyy", + "24hour": "d MMM yyyy" + }, + "formattedTimestampMonthDayYearHourMinute": { + "12hour": "d MMM yyyy, h:mm aaa", + "24hour": "d MMM yyyy, HH:mm" + }, + "formattedTimestampMonthDay": "d MMM", + "formattedTimestampFilename": { + "12hour": "dd-MM-yy-h-mm-ss-a", + "24hour": "dd-MM-yy-HH-mm-ss" + }, + "inProgress": "Выконваецца", + "invalidStartTime": "Памылковы час пачатку", + "invalidEndTime": "Памылковы час заканчэння" + }, + "unit": { + "speed": { + "mph": "міль/г", + "kph": "км/г" + }, + "length": { + "feet": "футы", + "meters": "метры" + }, + "data": { + "kbps": "кБ/с", + "mbps": "МБ/с", + "gbps": "ГБ/с", + "kbph": "кБ/гадз", + "mbph": "МБ/гадз", + "gbph": "ГБ/гадз" + } + }, + "label": { + "back": "Назад", + "hide": "Схаваць {{item}}", + "show": "Паказаць {{item}}", + "ID": "ID", + "none": "Няма", + "all": "Усе", + "other": "Іншае" + }, + "list": { + "two": "{{0}} і {{1}}", + "many": "{{items}} і {{last}}", + "separatorWithSpace": ", " + }, + "field": { + "optional": "Неабавязкова", + "internalID": "Унутраны ID, які Frigate выкарыстоўвае ў канфігурацыі і базе даных" + }, + "button": { + "add": "Дадаць", + "apply": "Прымяніць", + "applying": "Прымяненне…", + "reset": "Скінуць", + "undo": "Адрабіць", + "done": "Гатова", + "enabled": "Уключана", + "enable": "Уключыць", + "disabled": "Адключана", + "disable": "Адключыць", + "save": "Захаваць", + "saving": "Захаванне…", + "cancel": "Скасаваць", + "close": "Закрыць", + "copy": "Капіяваць", + "copiedToClipboard": "Скапіявана ў буфер абмену", + "back": "Назад", + "history": "Гісторыя", + "fullscreen": "На ўвесь экран", + "exitFullscreen": "Выйсці з поўнаэкраннага рэжыму", + "pictureInPicture": "Picture in Picture", + "twoWayTalk": "Двухбаковая размова", + "cameraAudio": "Гук камеры", + "on": "Укл.", + "off": "Выкл.", + "edit": "Рэдагаваць", + "copyCoordinates": "Скапіяваць каардынаты", + "delete": "Выдаліць", + "yes": "Так", + "no": "Не", + "download": "Спампоўка", + "info": "Звесткі", + "suspended": "Прыпынена", + "unsuspended": "Аднавіць", + "play": "Прайграць", + "unselect": "Зняць выбар", + "export": "Экспарт", + "deleteNow": "Выдаліць зараз", + "next": "Далей", + "continue": "Працягнуць", + "modified": "Зменена", + "overridden": "Перавызначана", + "resetToGlobal": "Скінуць да глабальнага", + "resetToDefault": "Скінуць да прадвызначанага", + "saveAll": "Захаваць усё", + "savingAll": "Захаванне ўсяго…", + "undoAll": "Адрабіць усё", + "retry": "Паўтарыць" + }, + "menu": { + "system": "Сістэма", + "systemMetrics": "Сістэмныя метрыкі", + "configuration": "Канфігурацыя", + "systemLogs": "Журналы сістэмы", + "profiles": "Профілі", + "settings": "Налады", + "configurationEditor": "Рэдактар канфігурацыі", + "languages": "Мовы", + "language": { + "en": "English (англійская)", + "es": "Español (іспанская)", + "zhCN": "简体中文 (кітайская спрошчаная)", + "zhHant": "繁體中文 (кітайская традыцыйная)", + "hi": "हिन्दी (хіндзі)", + "fr": "Français (французская)", + "ar": "العربية (арабская)", + "pt": "Português (партугальская)", + "ptBR": "Português brasileiro (бразільская партугальская)", + "ru": "Русский (руская)", + "de": "Deutsch (нямецкая)", + "ja": "日本語 (японская)", + "tr": "Türkçe (турэцкая)", + "it": "Italiano (італьянская)", + "nl": "Nederlands (нідэрландская)", + "sv": "Svenska (шведская)", + "cs": "Čeština (чэшская)", + "nb": "Norsk Bokmål (нарвежская букмол)", + "ko": "한국어 (карэйская)", + "vi": "Tiếng Việt (в'етнамская)", + "fa": "فارسی (персідская)", + "pl": "Polski (польская)", + "uk": "Українська (украінская)", + "he": "עברית (іўрыт)", + "el": "Ελληνικά (грэчаская)", + "ro": "Română (румынская)", + "hu": "Magyar (венгерская)", + "fi": "Suomi (фінская)", + "da": "Dansk (дацкая)", + "sk": "Slovenčina (славацкая)", + "yue": "粵語 (кантонская)", + "th": "ไทย (тайская)", + "ca": "Català (каталонская)", + "hr": "Hrvatski (харвацкая)", + "bs": "Bosanski (баснійская)", + "sr": "Српски (сербская)", + "sl": "Slovenščina (славенская)", + "lt": "Lietuvių (літоўская)", + "bg": "Български (балгарская)", + "gl": "Galego (галісійская)", + "id": "Bahasa Indonesia (інданезійская)", + "ur": "اردو (урду)", + "withSystem": { + "label": "Выкарыстоўваць мову з налад сістэмы" + } + }, + "appearance": "Выгляд", + "darkMode": { + "label": "Цёмны рэжым", + "light": "Светлы", + "dark": "Цёмны", + "withSystem": { + "label": "Выкарыстоўваць светлы або цёмны рэжым з налад сістэмы" + } + }, + "withSystem": "Сістэма", + "theme": { + "label": "Тэма", + "blue": "Сіняя", + "green": "Зялёная", + "nord": "Nord", + "red": "Чырвоная", + "highcontrast": "Высокая кантраснасць", + "default": "Прадвызначаны" + }, + "help": "Даведка", + "documentation": { + "title": "Дакументацыя", + "label": "Дакументацыя Frigate" + }, + "restart": "Перазапусціць Frigate", + "live": { + "title": "Эфір", + "allCameras": "Усе камеры", + "cameras": { + "title": "Камеры", + "count_one": "{{count}} камера", + "count_few": "{{count}} камеры", + "count_many": "{{count}} камер" + } + }, + "review": "Разгляд", + "explore": "Агляд", + "export": "Экспарт", + "actions": "Дзеянні", + "uiPlayground": "Пясочніца інтэрфейсу", + "features": "Магчымасці", + "faceLibrary": "Бібліятэка асоб", + "classification": "Класіфікацыя", + "chat": "Чат", + "user": { + "title": "Карыстальнік", + "account": "Акаўнт", + "current": "Бягучы карыстальнік: {{user}}", + "anonymous": "ананімны", + "logout": "Выхад", + "setPassword": "Задаць пароль" + } + }, + "toast": { + "copyUrlToClipboard": "URL скапіяваны ў буфер абмену.", + "save": { + "title": "Захаваць", + "error": { + "title": "Не ўдалося захаваць змены канфігурацыі: {{errorMessage}}", + "noMessage": "Не ўдалося захаваць змены канфігурацыі" + }, + "success": "Змены канфігурацыі захаваны." + } + }, + "role": { + "title": "Роля", + "admin": "Адміністратар", + "viewer": "Назіральнік", + "desc": "Адміністратары маюць поўны доступ да ўсіх магчымасцей інтэрфейсу Frigate. Назіральнікі могуць толькі праглядаць камеры, элементы разгляду і архіўныя відэа." + }, + "pagination": { + "label": "нумарацыя старонак", + "previous": { + "title": "Папярэдні", + "label": "Перайсці на папярэднюю старонку" + }, + "next": { + "title": "Далей", + "label": "Перайсці на наступную старонку" + }, + "more": "Больш старонак" + }, + "accessDenied": { + "documentTitle": "Доступ забаронены - Frigate", + "title": "Доступ забаронены", + "desc": "У вас няма дазволу на прагляд гэтай старонкі." + }, + "notFound": { + "documentTitle": "Не знойдзена - Frigate", + "title": "404", + "desc": "Старонка не знойдзена" + }, + "selectItem": "Выбраць {{item}}", + "readTheDocumentation": "Чытаць дакументацыю", + "information": { + "pixels": "{{area}} пікс" + }, + "no_items": "Няма элементаў", + "validation_errors": "Памылкі праверкі", + "credentialField": { + "savedPlaceholder": "Захавана - пакіньце пустым, каб не мяняць" + } +} diff --git a/web/public/locales/be/components/auth.json b/web/public/locales/be/components/auth.json new file mode 100644 index 0000000000..2752b85067 --- /dev/null +++ b/web/public/locales/be/components/auth.json @@ -0,0 +1,16 @@ +{ + "form": { + "user": "Імя карыстальніка", + "password": "Пароль", + "login": "Уваход", + "firstTimeLogin": "Уваходзіце ўпершыню? Даныя карыстальніка друкуюцца ў журналах Frigate.", + "errors": { + "usernameRequired": "Патрабуецца імя карыстальніка", + "passwordRequired": "Патрабуецца пароль", + "rateLimit": "Перавышаны ліміт запытаў. Паспрабуйце пазней.", + "loginFailed": "Не ўдалося ўвайсці", + "unknownError": "Невядомая памылка. Праверце журналы.", + "webUnknownError": "Невядомая памылка. Праверце журналы кансолі." + } + } +} diff --git a/web/public/locales/be/components/camera.json b/web/public/locales/be/components/camera.json new file mode 100644 index 0000000000..0e8f434861 --- /dev/null +++ b/web/public/locales/be/components/camera.json @@ -0,0 +1,90 @@ +{ + "group": { + "label": "Групы камер", + "add": "Дадаць групу камер", + "showAll": "Паказаць усе групы камер", + "showLess": "Паказаць меней", + "edit": "Рэдагаваць групу камер", + "editGroups": "Рэдагаваць групы камер", + "delete": { + "label": "Выдаліць групу камер", + "confirm": { + "title": "Пацвердзіце выдаленне", + "desc": "Сапраўды выдаліць групу камер {{name}}?" + } + }, + "name": { + "label": "Назва", + "placeholder": "Увядзіце назву…", + "errorMessage": { + "mustLeastCharacters": "Назва групы камер мусіць мець не меней за 2 сімвалы.", + "exists": "Такая назва групы камер ужо існуе.", + "nameMustNotPeriod": "Назва групы камер не мусіць утрымліваць кропку.", + "invalid": "Памылковая назва групы камер." + } + }, + "cameras": { + "label": "Камеры", + "desc": "Выберыце камеры для гэтай групы." + }, + "icon": "Значок", + "success": "Група камер ({{name}}) захавана.", + "camera": { + "birdseye": "Birdseye", + "setting": { + "label": "Налады трансляцыі камеры", + "title": "Налады трансляцыі: {{cameraName}}", + "desc": "Змяніце параметры жывой трансляцыі для панэлі гэтай групы камер. Гэтыя налады датычацца канкрэтнай прылады або браўзера.", + "audioIsAvailable": "Для гэтай плыні даступны гук", + "audioIsUnavailable": "Для гэтай плыні гук недаступны", + "audio": { + "tips": { + "title": "Гук мусіць выводзіцца з камеры і быць наладжаны ў go2rtc для гэтай плыні." + } + }, + "stream": "Плынь", + "placeholder": "Выберыце плынь", + "streamMethod": { + "label": "Спосаб трансляцыі", + "placeholder": "Выберыце спосаб трансляцыі", + "method": { + "noStreaming": { + "label": "Без трансляцыі", + "desc": "Відарыс камеры будзе абнаўляцца раз на хвіліну, жывой трансляцыі не будзе." + }, + "smartStreaming": { + "label": "Разумная трансляцыя (рэкамендуецца)", + "desc": "Разумная трансляцыя абнаўляе відарыс камеры раз на хвіліну, калі нічога не адбываецца, каб зберагчы паласу прапускання і рэсурсы. Пры выяўленні актыўнасці відарыс плаўна пераходзіць у жывая плынь." + }, + "continuousStreaming": { + "label": "Бесперапынная трансляцыя", + "desc": { + "title": "Відарыс камеры заўсёды будзе жывой плынню, пакуль ён бачны на панэлі, нават калі актыўнасці няма.", + "warning": "Бесперапынная трансляцыя можа моцна нагружаць паласу прапускання і зніжаць прадукцыйнасць. Карыстайцеся асцярожна." + } + } + } + }, + "compatibilityMode": { + "label": "Рэжым сумяшчальнасці", + "desc": "Уключайце гэты параметр толькі калі ў жывой плыні камеры з'яўляюцца скажэнні колеру і дыяганальная лінія справа." + } + } + } + }, + "debug": { + "options": { + "label": "Налады", + "title": "Параметры", + "showOptions": "Паказаць параметры", + "hideOptions": "Схаваць параметры" + }, + "boundingBox": "Абмяжавальны прамавугольнік", + "timestamp": "Метка часу", + "zones": "Зоны", + "mask": "Маска", + "motion": "Рух", + "regions": "Рэгіёны", + "paths": "Шляхі" + } +} diff --git a/web/public/locales/be/components/dialog.json b/web/public/locales/be/components/dialog.json new file mode 100644 index 0000000000..d6fb0ab75f --- /dev/null +++ b/web/public/locales/be/components/dialog.json @@ -0,0 +1,204 @@ +{ + "restart": { + "title": "Сапраўды перазапусціць Frigate?", + "description": "Frigate ненадоўга спыніцца на час перазапуску.", + "button": "Перазапусціць", + "restarting": { + "title": "Frigate перазапускаецца", + "content": "Гэта старонка перазагрузіцца праз {{countdown}} с.", + "button": "Прымусова перазагрузіць зараз" + } + }, + "explore": { + "plus": { + "submitToPlus": { + "label": "Адправіць у Frigate+", + "desc": "Аб'екты ў месцах, якія вы хочаце ігнараваць, не з'яўляюцца памылковымі спрацоўваннямі. Адпраўка іх як памылковых заблытае мадэль." + }, + "review": { + "question": { + "label": "Пацвердзіце гэтую метку для Frigate Plus", + "ask_a": "Ці з'яўляецца гэты аб'ект {{label}}?", + "ask_an": "Ці з'яўляецца гэты аб'ект {{label}}?", + "ask_full": "Ці з'яўляецца гэты аб'ект {{untranslatedLabel}} ({{translatedLabel}})?" + }, + "state": { + "submitted": "Адпраўлена" + }, + "toast": { + "error": "Не ўдалося адправіць у Frigate+. Праверце сеткавае злучэнне і паспрабуйце зноў." + } + } + }, + "video": { + "viewInHistory": "Паказаць у гісторыі" + } + }, + "export": { + "time": { + "fromTimeline": "Выбраць са шкалы часу", + "lastHour_one": "Апошняя {{count}} гадзіна", + "lastHour_few": "Апошнія {{count}} гадзіны", + "lastHour_many": "Апошнія {{count}} гадзін", + "custom": "Уласны", + "start": { + "title": "Час пачатку", + "label": "Выберыце час пачатку" + }, + "end": { + "title": "Час заканчэння", + "label": "Выберыце час заканчэння" + } + }, + "name": { + "placeholder": "Назавіце экспарт" + }, + "case": { + "newCaseOption": "Стварыць новую справу", + "newCaseNamePlaceholder": "Назва новай справы", + "newCaseDescriptionPlaceholder": "Апісанне справы", + "label": "Справа", + "nonAdminHelp": "Для гэтых экспартаў будзе створана новая справа.", + "placeholder": "Выберыце справу" + }, + "select": "Выбраць", + "export": "Экспарт", + "queueing": "Экспарт ставіцца ў чаргу…", + "selectOrExport": "Выбраць або экспартаваць", + "tabs": { + "export": "Адна камера", + "multiCamera": "Некалькі камер" + }, + "multiCamera": { + "timeRange": "Прамежак часу", + "selectFromTimeline": "Выбраць са шкалы часу", + "cameraSelection": "Камеры", + "cameraSelectionHelp": "Камеры з аб'ектамі пад адсочваннем у гэтым прамежку выбраны загадзя", + "searchOrSelectGroup": "Шукайце або выберыце групу камер…", + "selectAll": "Выбраць усе камеры", + "clearSelection": "Зняць выбар", + "selectWithActivity": "Камеры з аб'ектамі пад адсочваннем", + "selectGroup": "Выбраць групу", + "noMatchingCameras": "Няма камер, якія адпавядаюць запыту", + "selectedCount": "Выбрана {{selected}} з {{total}}", + "checkingActivity": "Праверка актыўнасці камер…", + "noCameras": "Няма даступных камер", + "detectionCount_one": "{{count}} аб'ект пад адсочваннем", + "detectionCount_few": "{{count}} аб'екты пад адсочваннем", + "detectionCount_many": "{{count}} аб'ектаў пад адсочваннем", + "nameLabel": "Назва экспарту", + "namePlaceholder": "Неабавязковая базавая назва для гэтых экспартаў", + "queueingButton": "Экспарты ставяцца ў чаргу…", + "exportButton_one": "Экспартаваць {{count}} камеру", + "exportButton_few": "Экспартаваць {{count}} камеры", + "exportButton_many": "Экспартаваць {{count}} камер" + }, + "multi": { + "title_one": "Экспартаваць {{count}} разгляд", + "title_few": "Экспартаваць {{count}} разгляды", + "title_many": "Экспартаваць {{count}} разглядаў", + "description": "Экспартаваць кожны выбраны разгляд. Усе экспарты будуць аб'яднаны ў адну справу.", + "descriptionNoCase": "Экспартаваць кожны выбраны разгляд.", + "caseNamePlaceholder": "Экспарт разгляду - {{date}}", + "exportButton_one": "Экспартаваць {{count}} разгляд", + "exportButton_few": "Экспартаваць {{count}} разгляды", + "exportButton_many": "Экспартаваць {{count}} разглядаў", + "exportingButton": "Экспартаванне…", + "toast": { + "started_one": "Пачаты {{count}} экспарт.", + "started_few": "Пачата {{count}} экспарты.", + "started_many": "Пачата {{count}} экспартаў.", + "partial": "Пачата {{successful}} з {{total}} экспартаў. Не ўдалося: {{failedItems}}", + "failed": "Не ўдалося пачаць {{total}} экспартаў. Не ўдалося: {{failedItems}}" + } + }, + "toast": { + "success": "Экспарт пачаты. Файл даступны на старонцы экспартаў.", + "queued": "Экспарт пастаўлены ў чаргу. Ход выканання на старонцы экспартаў.", + "view": "Від", + "batchSuccess_one": "Пачаты {{count}} экспарт. Адкрываем справу.", + "batchSuccess_few": "Пачата {{count}} экспарты. Адкрываем справу.", + "batchSuccess_many": "Пачата {{count}} экспартаў. Адкрываем справу.", + "batchPartial": "Пачата {{successful}} з {{total}} экспартаў. Няўдалыя камеры: {{failedCameras}}", + "batchFailed": "Не ўдалося пачаць {{total}} экспартаў. Няўдалыя камеры: {{failedCameras}}", + "batchQueuedSuccess_one": "У чаргу пастаўлены {{count}} экспарт.", + "batchQueuedSuccess_few": "У чаргу пастаўлена {{count}} экспарты.", + "batchQueuedSuccess_many": "У чаргу пастаўлена {{count}} экспартаў.", + "batchQueuedPartial": "У чаргу пастаўлена {{successful}} з {{total}} экспартаў. Няўдалыя камеры: {{failedCameras}}", + "batchQueueFailed": "Не ўдалося паставіць у чаргу {{total}} экспартаў. Няўдалыя камеры: {{failedCameras}}", + "error": { + "failed": "Не ўдалося паставіць экспарт у чаргу: {{error}}", + "endTimeMustAfterStartTime": "Час заканчэння мусіць быць пазней за час пачатку", + "noValidTimeSelected": "Не выбраны сапраўдны прамежак часу" + } + }, + "fromTimeline": { + "saveExport": "Захаваць экспарт", + "queueingExport": "Экспарт ставіцца ў чаргу…", + "previewExport": "Перадпрагляд экспарту", + "useThisRange": "Ужыць гэты прамежак" + } + }, + "streaming": { + "label": "Плынь", + "restreaming": { + "disabled": "Для гэтай камеры рэтрансляцыя не ўключана.", + "desc": { + "title": "Наладзьце go2rtc, каб атрымаць дадатковыя параметры жывога прагляду і гук для гэтай камеры." + } + }, + "showStats": { + "label": "Паказваць статыстыку плыні", + "desc": "Уключыце гэты параметр, каб паказваць статыстыку плыні паверх відарыса камеры." + }, + "debugView": "Адладачны выгляд" + }, + "search": { + "saveSearch": { + "label": "Захаваць пошук", + "desc": "Задайце назву для гэтага захаванага пошуку.", + "placeholder": "Увядзіце назву пошуку", + "overwrite": "{{searchName}} ужо існуе. Захаванне перазапіша наяўнае значэнне.", + "success": "Пошук ({{searchName}}) захаваны.", + "button": { + "save": { + "label": "Захаваць гэты пошук" + } + } + } + }, + "recording": { + "shareTimestamp": { + "label": "Падзяліцца меткай часу", + "title": "Падзяліцца меткай часу", + "description": "Падзяліцеся URL з меткай часу бягучай пазіцыі плэера або выберыце сваю метку часу. Гэта не публічная спасылка: яна даступна толькі карыстальнікам, якія маюць доступ да Frigate і да гэтай камеры.", + "custom": "Свая метка часу", + "button": "URL з меткай часу", + "shareTitle": "Метка часу разгляду Frigate: {{camera}}" + }, + "confirmDelete": { + "title": "Пацвердзіце выдаленне", + "desc": { + "selected": "Сапраўды выдаліць усё запісанае відэа, звязанае з гэтым элементам разгляду?

Утрымлівайце клавішу Shift, каб надалей прапускаць гэтае акно." + }, + "toast": { + "success": "Відэа, звязанае з выбранымі элементамі разгляду, выдалена.", + "error": "Не ўдалося выдаліць: {{error}}" + } + }, + "button": { + "export": "Экспарт", + "markAsReviewed": "Пазначыць як разгледжанае", + "markAsUnreviewed": "Пазначыць як неразгледжанае", + "deleteNow": "Выдаліць зараз" + } + }, + "imagePicker": { + "selectImage": "Выберыце паменшаную выяву аб'екта пад адсочваннем", + "unknownLabel": "Захаваны відарыс трыгера", + "search": { + "placeholder": "Пошук па метцы або падметцы…" + }, + "noImages": "Для гэтай камеры паменшаных выяў не знойдзена" + } +} diff --git a/web/public/locales/be/components/filter.json b/web/public/locales/be/components/filter.json new file mode 100644 index 0000000000..727b7488e1 --- /dev/null +++ b/web/public/locales/be/components/filter.json @@ -0,0 +1,140 @@ +{ + "filter": "Фільтр", + "classes": { + "label": "Класы", + "all": { + "title": "Усе класы" + }, + "count_one": "{{count}} клас", + "count_other": "{{count}} класа" + }, + "labels": { + "label": "Меткі", + "all": { + "title": "Усе меткі", + "short": "Меткі" + }, + "count_one": "{{count}} метка", + "count_other": "{{count}} меткі" + }, + "zones": { + "label": "Зоны", + "all": { + "title": "Усе зоны", + "short": "Зоны" + } + }, + "dates": { + "selectPreset": "Выберыце набор…", + "all": { + "title": "Усе даты", + "short": "Даты" + } + }, + "more": "Больш фільтраў", + "reset": { + "label": "Скінуць фільтры да прадвызначаных значэнняў" + }, + "timeRange": "Прамежак часу", + "subLabels": { + "label": "Падметкі", + "all": "Усе падметкі" + }, + "attributes": { + "label": "Атрыбуты класіфікацыі", + "all": "Усе атрыбуты" + }, + "score": "Бал", + "estimatedSpeed": "Ацэненая хуткасць ({{unit}})", + "features": { + "label": "Магчымасці", + "hasSnapshot": "Мае здымак", + "hasVideoClip": "Мае відэакліп", + "submittedToFrigatePlus": { + "label": "Адпраўлена ў Frigate+", + "tips": "Спачатку трэба адфільтраваць аб'екты пад адсочваннем, якія маюць здымак.

Аб'екты без здымка нельга адправіць у Frigate+." + } + }, + "sort": { + "label": "Сартаваць", + "dateAsc": "Дата (па ўзрастанні)", + "dateDesc": "Дата (па спаданні)", + "scoreAsc": "Бал аб'екта (па ўзрастанні)", + "scoreDesc": "Бал аб'екта (па спаданні)", + "speedAsc": "Ацэненая хуткасць (па ўзрастанні)", + "speedDesc": "Ацэненая хуткасць (па спаданні)", + "relevance": "Рэлевантнасць" + }, + "cameras": { + "label": "Фільтр камер", + "all": { + "title": "Усе камеры", + "short": "Камеры" + } + }, + "review": { + "showReviewed": "Паказваць разгледжаныя" + }, + "motion": { + "showMotionOnly": "Паказваць толькі рух" + }, + "explore": { + "settings": { + "title": "Налады", + "defaultView": { + "title": "Прадвызн. від", + "desc": "Калі фільтры не выбраны, паказваць зводку апошніх аб'ектаў пад адсочваннем па кожнай метцы або нефільтраваную сетку.", + "summary": "Зводка", + "unfilteredGrid": "Нефільтраваная сетка" + }, + "gridColumns": { + "title": "Слупкі сеткі", + "desc": "Выберыце колькасць слупкоў у выглядзе сеткі." + }, + "searchSource": { + "label": "Крыніца пошуку", + "desc": "Выберыце, дзе шукаць: у паменшаных выявах ці ў апісаннях аб'ектаў пад адсочваннем.", + "options": { + "thumbnailImage": "Паменшаная выява", + "description": "Апісанне" + } + } + }, + "date": { + "selectDateBy": { + "label": "Выберыце дату для фільтравання" + } + } + }, + "logSettings": { + "label": "Фільтр па ўзроўні журнала", + "filterBySeverity": "Фільтраваць журналы па ўзроўні важнасці", + "loading": { + "title": "Загрузка", + "desc": "Калі панэль журнала пракручана ўніз, новыя запісы з'яўляюцца аўтаматычна па меры паступлення." + }, + "disableLogStreaming": "Адключыць плынь журналаў", + "allLogs": "Усе журналы" + }, + "trackedObjectDelete": { + "title": "Пацвердзіце выдаленне", + "desc": "Выдаленне гэтых аб'ектаў пад адсочваннем ({{objectLength}}) прыбярэ здымак, усе захаваныя ўбудаванні і ўсе звязаныя запісы жыццёвага цыкла аб'екта. Запісанае відэа гэтых аб'ектаў у выглядзе «Гісторыя» НЕ будзе выдалена.

Сапраўды працягнуць?

Утрымлівайце клавішу Shift, каб надалей прапускаць гэтае акно.", + "toast": { + "success": "Аб'екты пад адсочваннем выдалены.", + "error": "Не ўдалося выдаліць аб'екты пад адсочваннем: {{errorMessage}}" + } + }, + "zoneMask": { + "filterBy": "Фільтраваць па масцы зоны" + }, + "recognizedLicensePlates": { + "title": "Распазнаныя нумарныя знакі", + "loadFailed": "Не ўдалося загрузіць распазнаныя нумарныя знакі.", + "loading": "Загрузка распазнаных нумарных знакаў…", + "placeholder": "Набярыце, каб шукаць нумарныя знакі…", + "noLicensePlatesFound": "Нумарных знакаў не знойдзена.", + "selectPlatesFromList": "Выберыце адзін або некалькі знакаў са спіса.", + "selectAll": "Выбраць усе", + "clearAll": "Ачысціць усё" + } +} diff --git a/web/public/locales/be/components/icons.json b/web/public/locales/be/components/icons.json new file mode 100644 index 0000000000..94cc81d958 --- /dev/null +++ b/web/public/locales/be/components/icons.json @@ -0,0 +1,8 @@ +{ + "iconPicker": { + "selectIcon": "Выберыце значок", + "search": { + "placeholder": "Пошук значка…" + } + } +} diff --git a/web/public/locales/be/components/input.json b/web/public/locales/be/components/input.json new file mode 100644 index 0000000000..612798af95 --- /dev/null +++ b/web/public/locales/be/components/input.json @@ -0,0 +1,10 @@ +{ + "button": { + "downloadVideo": { + "label": "Спампаваць відэа", + "toast": { + "success": "Відэа элемента разгляду пачало спампоўвацца." + } + } + } +} diff --git a/web/public/locales/be/components/player.json b/web/public/locales/be/components/player.json new file mode 100644 index 0000000000..4f45ce2b6c --- /dev/null +++ b/web/public/locales/be/components/player.json @@ -0,0 +1,52 @@ +{ + "noRecordingsFoundForThisTime": "На гэты час запісаў не знойдзена", + "noPreviewFound": "Перадпрагляд не знойдзены", + "noPreviewFoundFor": "Перадпрагляд для {{cameraName}} не знойдзены", + "submitFrigatePlus": { + "title": "Адправіць гэты кадр у Frigate+?", + "submit": "Адправіць", + "previewError": "Не ўдалося загрузіць перадпрагляд здымка. Магчыма, запіс зараз недаступны." + }, + "livePlayerRequiredIOSVersion": "Для гэтага тыпу жывой плыні патрэбна iOS 17.1 або навейшая.", + "streamOffline": { + "title": "Плынь па-за сеткай", + "desc": "На плыні detect камеры {{cameraName}} не атрымана ніводнага кадра, праверце журналы памылак" + }, + "cameraOff": "Камера выключана", + "stats": { + "streamType": { + "title": "Тып плыні:", + "short": "Тып" + }, + "bandwidth": { + "title": "Паласа прапускання:", + "short": "Паласа" + }, + "latency": { + "title": "Затрымка:", + "value": "{{seconds}} сек", + "short": { + "title": "Затрымка", + "value": "{{seconds}} с" + } + }, + "totalFrames": "Усяго кадраў:", + "droppedFrames": { + "title": "Страчаныя кадры:", + "short": { + "title": "Страчана", + "value": "кадраў: {{droppedFrames}}" + } + }, + "decodedFrames": "Дэкадаваныя кадры:", + "droppedFrameRate": "Частата страты кадраў:" + }, + "toast": { + "success": { + "submittedFrigatePlus": "Кадр паспяхова адпраўлены ў Frigate+" + }, + "error": { + "submitFrigatePlusFailed": "Не ўдалося адправіць кадр у Frigate+" + } + } +} diff --git a/web/public/locales/be/config/cameras.json b/web/public/locales/be/config/cameras.json new file mode 100644 index 0000000000..f92cf4d41f --- /dev/null +++ b/web/public/locales/be/config/cameras.json @@ -0,0 +1,956 @@ +{ + "zones": { + "label": "Зоны", + "description": "Зоны дазваляюць вызначыць пэўную вобласць кадра, каб знаць, ці знаходзіцца аб'ект у ёй.", + "friendly_name": { + "label": "Назва зоны", + "description": "Зразумелая назва зоны, якая паказваецца ў інтэрфейсе Frigate. Калі не зададзена, будзе выкарыстана адфарматаваная назва зоны." + }, + "enabled": { + "label": "Уключана", + "description": "Уключыць або адключыць гэтую зону. Адключаныя зоны ігнаруюцца падчас працы." + }, + "enabled_in_config": { + "label": "Захоўваць зыходны стан зоны." + }, + "filters": { + "label": "Фільтры зоны", + "description": "Фільтры для аб'ектаў у гэтай зоне. Памяншаюць памылковыя спрацоўванні або абмяжоўваюць, якія аб'екты лічацца прысутнымі ў зоне.", + "min_area": { + "label": "Мінімальная вобласць аб'екта", + "description": "Мінімальная вобласць абмяжавальнага прамавугольніка (пікселі або працэнты) для гэтага тыпу аб'екта. Пікселі (цэлы лік) або працэнты (дробавы лік ад 0,000001 да 0,99)." + }, + "max_area": { + "label": "Максімальная вобласць аб'екта", + "description": "Максімальная вобласць абмяжавальнага прамавугольніка (пікселі або працэнты) для гэтага тыпу аб'екта. Пікселі (цэлы лік) або працэнты (дробавы лік ад 0,000001 да 0,99)." + }, + "min_ratio": { + "label": "Мінімальныя фарматныя суадносіны", + "description": "Мінімальныя суадносіны шырыні да вышыні, патрэбныя прамавугольніку, каб ён падышоў." + }, + "max_ratio": { + "label": "Максімальныя фарматныя суадносіны", + "description": "Максімальныя суадносіны шырыні да вышыні, дапушчальныя для прамавугольніка." + }, + "threshold": { + "label": "Парог даверу", + "description": "Сярэдні парог пэўнасці дэтэктавання, патрэбны, каб аб'ект лічыўся сапраўдным." + }, + "min_score": { + "label": "Мінімальная пэўнасць", + "description": "Мінімальная пэўнасць дэтэктавання ў адным кадры, патрэбная, каб аб'ект быў улічаны." + }, + "mask": { + "label": "Маска фільтра", + "description": "Каардынаты шматвугольніка, якія задаюць, дзе ў кадры дзейнічае гэты фільтр." + }, + "raw_mask": { + "label": "Неапрацаваная маска" + } + }, + "coordinates": { + "label": "Каардынаты", + "description": "Каардынаты шматвугольніка, які задае вобласць зоны. Можа быць радком праз коскі або спісам радкоў каардынат. Каардынаты мусяць быць адноснымі (0-1) або абсалютнымі (састарэлы фармат)." + }, + "distances": { + "label": "Рэальныя адлегласці", + "description": "Неабавязковыя рэальныя адлегласці для кожнага боку чатырохвугольніка зоны, што выкарыстоўваюцца для разліку хуткасці або адлегласці. Калі зададзена, мусіць быць роўна 4 значэнні." + }, + "inertia": { + "label": "Кадры інерцыі", + "description": "Колькасць паслядоўных кадраў, у якіх аб'ект мусіць быць выяўлены ў зоне, каб лічыцца прысутным. Дапамагае адсеяць кароткачасовыя дэтэктаванні." + }, + "loitering_time": { + "label": "Секунды бадзяння", + "description": "Колькасць секунд, якія аб'ект мусіць прабыць у зоне, каб лічыцца бадзяючым. 0 адключае дэтэктаванне бадзяння." + }, + "speed_threshold": { + "label": "Мін. хуткасць", + "description": "Мінімальная хуткасць (у рэальных адзінках, калі зададзены адлегласці), патрэбная, каб аб'ект лічыўся прысутным у зоне. Выкарыстоўваецца для трыгераў зоны па хуткасці." + }, + "objects": { + "label": "Аб'екты-трыгеры", + "description": "Спіс тыпаў аб'ектаў (з labelmap), якія могуць спрацаваць у гэтай зоне. Можа быць радком або спісам радкоў. Калі пуста, улічваюцца ўсе аб'екты." + } + }, + "label": "CameraConfig", + "name": { + "label": "Назва камеры", + "description": "Назва камеры абавязковая" + }, + "friendly_name": { + "label": "Зразумелая назва", + "description": "Зразумелая назва камеры, якая паказваецца ў інтэрфейсе Frigate" + }, + "enabled": { + "label": "Уключана", + "description": "Уключана" + }, + "audio": { + "label": "Дэтэктаванне гуку", + "description": "Налады дэтэктавання падзей па гуку для гэтай камеры.", + "enabled": { + "label": "Уключыць дэтэктаванне гуку", + "description": "Уключыць або адключыць дэтэктаванне гукавых падзей для гэтай камеры." + }, + "max_not_heard": { + "label": "Тайм-аўт завяршэння", + "description": "Колькасць секунд без наладжанага тыпу гуку, пасля якіх гукавая падзея завяршаецца." + }, + "min_volume": { + "label": "Мінімальная гучнасць", + "description": "Мінімальны парог гучнасці RMS для запуску дэтэктавання гуку. Меншыя значэнні павышаюць адчувальнасць (напрыклад, 200 - высокая, 500 - сярэдняя, 1000 - нізкая)." + }, + "listen": { + "label": "Тыпы для праслухоўвання", + "description": "Спіс тыпаў гукавых падзей для дэтэктавання (напрыклад: bark, fire_alarm, speech, yell)." + }, + "filters": { + "label": "Фільтры гуку", + "description": "Налады фільтраў для асобных тыпаў гуку, напрыклад парогі пэўнасці, што памяншаюць памылковыя спрацоўванні.", + "threshold": { + "label": "Мінімальная пэўнасць гуку", + "description": "Мінімальны парог пэўнасці, каб гукавая падзея была ўлічана." + } + }, + "enabled_in_config": { + "label": "Зыходны стан гуку", + "description": "Паказвае, ці было дэтэктаванне гуку ўключана ў зыходным файле статычнай канфігурацыі." + }, + "num_threads": { + "label": "Патокі дэтэктавання", + "description": "Колькасць патокаў для апрацоўкі дэтэктавання гуку." + } + }, + "audio_transcription": { + "label": "Транскрыпцыя гуку", + "description": "Налады жывой і маўленчай транскрыпцыі гуку для падзей і жывых субтытраў.", + "enabled": { + "label": "Уключыць транскрыпцыю", + "description": "Уключыць або адключыць транскрыпцыю гукавых падзей, запушчаную ўручную." + }, + "enabled_in_config": { + "label": "Зыходны стан транскрыпцыі" + }, + "live_enabled": { + "label": "Жывая транскрыпцыя", + "description": "Уключыць жывое трансляванне транскрыпцыі гуку па меры яго паступлення." + } + }, + "birdseye": { + "label": "Birdseye", + "description": "Налады зборнага выгляду Birdseye, які аб'ядноўвае некалькі плыняў камер у адну раскладку.", + "enabled": { + "label": "Уключыць Birdseye", + "description": "Уключыць або адключыць функцыю выгляду Birdseye." + }, + "mode": { + "label": "Рэжым адсочвання", + "description": "Рэжым уключэння камер у Birdseye: «objects», «motion» або «continuous»." + }, + "order": { + "label": "Пазіцыя", + "description": "Лічбавае становішча, якое вызначае парадак камеры ў раскладцы Birdseye." + } + }, + "detect": { + "label": "Дэтэктаванне аб'ектаў", + "description": "Налады ролі «detect», якая запускае дэтэктаванне аб'ектаў і ініцыялізуе трэкеры.", + "enabled": { + "label": "Уключыць дэтэктаванне аб'ектаў", + "description": "Уключыць або адключыць дэтэктаванне аб'ектаў для гэтай камеры." + }, + "height": { + "label": "Вышыня дэтэктавання", + "description": "Вышыня кадраў (у пікселях) для плыні «detect». Пакіньце пустым, каб выкарыстоўваць уласнае разрозненне плыні." + }, + "width": { + "label": "Шырыня дэтэктавання", + "description": "Шырыня кадраў (у пікселях) для плыні «detect». Пакіньце пустым, каб выкарыстоўваць уласнае разрозненне плыні." + }, + "fps": { + "label": "FPS дэтэктавання", + "description": "Жаданая колькасць кадраў на секунду для дэтэктавання. Меншыя значэнні зніжаюць нагрузку на CPU (рэкамендуецца 5, вышэй - не больш за 10 - толькі для вельмі хуткіх аб'ектаў)." + }, + "min_initialized": { + "label": "Мінімум кадраў для ініцыялізацыі", + "description": "Колькасць паслядоўных спрацоўванняў дэтэктавання, патрэбных для стварэння аб'екта пад адсочваннем. Павялічце, каб паменшыць колькасць памылковых ініцыялізацый. Прадвызначана - fps, падзеленае на 2." + }, + "max_disappeared": { + "label": "Максімум зніклых кадраў", + "description": "Колькасць кадраў без дэтэктавання, пасля якіх аб'ект пад адсочваннем лічыцца зніклым." + }, + "stationary": { + "label": "Канфігурацыя нерухомых аб'ектаў", + "description": "Налады для дэтэктавання нерухомых аб'ектаў і кіравання імі.", + "interval": { + "label": "Інтэрвал для нерухомых", + "description": "Як часта (у кадрах) правяраць дэтэктаванне, каб пацвердзіць нерухомы аб'ект." + }, + "threshold": { + "label": "Парог нерухомасці", + "description": "Колькасць кадраў без змены становішча, патрэбная, каб пазначыць аб'ект як нерухомы." + }, + "max_frames": { + "label": "Максімум кадраў", + "description": "Абмяжоўвае, як доўга нерухомыя аб'екты адсочваюцца, перш чым будуць адкінуты.", + "default": { + "label": "Прадвызначаны максімум кадраў", + "description": "Прадвызначаная максімальная колькасць кадраў для адсочвання нерухомага аб'екта." + }, + "objects": { + "label": "Максімум кадраў па аб'ектах", + "description": "Перавызначэнні максімальнай колькасці кадраў адсочвання нерухомых аб'ектаў для асобных аб'ектаў." + } + }, + "classifier": { + "label": "Уключыць візуальны класіфікатар", + "description": "Выкарыстоўваць візуальны класіфікатар, каб выяўляць сапраўды нерухомыя аб'екты, нават калі абмяжавальныя прамавугольнікі дрыжаць." + } + }, + "annotation_offset": { + "label": "Зрух анатацый", + "description": "На колькі мілісекунд зрушыць прамавугольнікі аб'ектаў, каб яны супадалі з запісаным відэа: плыні «detect» і «record» рэдка ідэальна сінхронныя. Можа быць дадатным або адмоўным." + } + }, + "face_recognition": { + "label": "Распазнаванне асобы", + "description": "Налады дэтэктавання і распазнавання твараў для гэтай камеры.", + "enabled": { + "label": "Уключыць распазнаванне асобы", + "description": "Уключыць або адключыць распазнаванне асобы." + }, + "min_area": { + "label": "Мінімальная вобласць твару", + "description": "Мінімальная вобласць (у пікселях) прамавугольніка выяўленага твару, патрэбная для спробы распазнавання." + } + }, + "ffmpeg": { + "label": "Плыні (FFmpeg)", + "description": "Уваходныя плыні камеры і параметры FFmpeg, у тым ліку шлях да праграмы, аргументы, hwaccel і выходныя аргументы для кожнай ролі.", + "path": { + "label": "Шлях да FFmpeg", + "description": "Шлях да праграмы FFmpeg або псеўданім версіі («7.0» ці «8.0»)." + }, + "global_args": { + "label": "Глабальныя аргументы FFmpeg", + "description": "Глабальныя аргументы, якія перадаюцца працэсам FFmpeg." + }, + "hwaccel_args": { + "label": "Аргументы апаратнага паскарэння", + "description": "Аргументы апаратнага паскарэння для FFmpeg. Рэкамендуюцца прэсеты пад канкрэтнага пастаўшчыка." + }, + "input_args": { + "label": "Уваходныя аргументы", + "description": "Уваходныя аргументы, якія прымяняюцца да ўваходных плыняў FFmpeg." + }, + "output_args": { + "label": "Выходныя аргументы", + "description": "Прадвызначаныя выходныя аргументы для розных роляў FFmpeg, напрыклад detect і record.", + "detect": { + "label": "Выходныя аргументы для detect", + "description": "Прадвызначаныя выходныя аргументы для плыняў з роляй «detect»." + }, + "record": { + "label": "Выходныя аргументы для record", + "description": "Прадвызначаныя выходныя аргументы для плыняў з роляй «record»." + } + }, + "retry_interval": { + "label": "Час паўтору FFmpeg", + "description": "Секунд чакання перад спробай перападключыць плынь камеры пасля збою. Прадвызначана 10." + }, + "apple_compatibility": { + "label": "Сумяшчальнасць з Apple", + "description": "Уключыць пазначэнне HEVC для лепшай сумяшчальнасці з плэерамі Apple пры запісе ў H.265." + }, + "gpu": { + "label": "Індэкс GPU", + "description": "Прадвызначаны індэкс GPU для апаратнага паскарэння, калі яно даступнае." + }, + "inputs": { + "label": "Уваходы камеры", + "description": "Спіс азначэнняў уваходных плыняў (шляхі і ролі) для гэтай камеры.", + "path": { + "label": "Уваходны шлях", + "description": "URL або шлях уваходнай плыні камеры." + }, + "roles": { + "label": "Ролі ўваходу", + "description": "Ролі гэтага ўваходнай плыні." + }, + "global_args": { + "label": "Глабальныя аргументы FFmpeg", + "description": "Глабальныя аргументы FFmpeg для гэтага ўваходнай плыні." + }, + "hwaccel_args": { + "label": "Аргументы апаратнага паскарэння", + "description": "Аргументы апаратнага паскарэння для гэтага ўваходнай плыні." + }, + "input_args": { + "label": "Уваходныя аргументы", + "description": "Уваходныя аргументы, характэрныя для гэтай плыні." + } + } + }, + "live": { + "label": "Жывое прайграванне", + "description": "Налады, якімі вэб-інтэрфейс кіруе выбарам жывой плыні, разрозненнем і якасцю.", + "streams": { + "label": "Назвы жывых плыняў", + "description": "Супастаўленне наладжаных назваў плыняў з назвамі рэтрансляцыі або go2rtc для жывога прайгравання." + }, + "height": { + "label": "Вышыня жывой плыні", + "description": "Вышыня (у пікселях) для адлюстравання жывой плыні jsmpeg у вэб-інтэрфейсе. Мусіць быць не большай за вышыню плыні «detect»." + }, + "quality": { + "label": "Якасць жывой плыні", + "description": "Якасць кадавання плыні jsmpeg (1 - найвышэйшая, 31 - найніжэйшая)." + } + }, + "lpr": { + "label": "Распазнаванне нумарных знакаў", + "description": "Налады распазнавання нумарных знакаў, у тым ліку парогі дэтэктавання, фарматаванне і вядомыя знакі.", + "enabled": { + "label": "Уключыць LPR", + "description": "Уключыць або адключыць LPR на гэтай камеры." + }, + "expire_time": { + "label": "Секунд да пратэрміноўкі", + "description": "Час у секундах, пасля якога незаўважаны знак прыбіраецца з трэкера (толькі для камер, прызначаных пад LPR)." + }, + "min_area": { + "label": "Мінімальная вобласць знака", + "description": "Мінімальная вобласць знака (у пікселях), патрэбная для спробы распазнавання." + }, + "enhancement": { + "label": "Узровень паляпшэння", + "description": "Узровень паляпшэння (0-10), які прымяняецца да абрэзкі знака перад OCR. Большыя значэнні не заўсёды паляпшаюць вынік: узроўні вышэй за 5 могуць працаваць толькі з начнымі знакамі, карыстайцеся асцярожна." + } + }, + "motion": { + "label": "Дэтэктаванне руху", + "description": "Прадвызначаныя налады дэтэктавання руху для гэтай камеры.", + "enabled": { + "label": "Уключыць дэтэктаванне руху", + "description": "Уключыць або адключыць дэтэктаванне руху для гэтай камеры." + }, + "threshold": { + "label": "Парог руху", + "description": "Парог розніцы пікселяў для дэтэктара руху. Большыя значэнні зніжаюць адчувальнасць (дыяпазон 1-255)." + }, + "lightning_threshold": { + "label": "Парог успышак", + "description": "Парог для выяўлення і ігнаравання кароткіх успышак асвятлення (менш - больш адчувальна, значэнні ад 0,3 да 1,0). Гэта не спыняе дэтэктаванне руху цалкам: дэтэктар проста перастае аналізаваць далейшыя кадры пасля перавышэння парога. Запісы па руху ў такія моманты ўсё роўна ствараюцца." + }, + "skip_motion_threshold": { + "label": "Парог прапускання руху", + "description": "Калі задана значэнне ад 0,0 да 1,0 і за адзін кадр змянілася большая доля відарыса, дэтэктар не верне прамавугольнікаў руху і адразу перакалібруецца. Гэта эканоміць CPU і памяншае памылковыя спрацоўванні падчас маланкі, буры і да т.п., але можа прапусціць сапраўдныя падзеі, напрыклад аўтаадсочванне аб'екта камерай PTZ. Выбар паміж стратай некалькіх мегабайт запісу і праглядам пары кароткіх кліпаў. Пакіньце незададзеным (None), каб адключыць." + }, + "improve_contrast": { + "label": "Паляпшаць кантраснасць", + "description": "Паляпшаць кантраснасць кадраў перад аналізам руху, каб дапамагчы дэтэктаванню." + }, + "contour_area": { + "label": "Вобласць контуру", + "description": "Мінімальная вобласць контуру ў пікселях, патрэбная, каб контур руху быў улічаны." + }, + "delta_alpha": { + "label": "Дэльта-альфа", + "description": "Каэфіцыент альфа-змешвання пры разліку розніцы кадраў для руху." + }, + "frame_alpha": { + "label": "Альфа кадра", + "description": "Значэнне альфа пры змешванні кадраў для папярэдняй апрацоўкі руху." + }, + "frame_height": { + "label": "Вышыня кадра", + "description": "Вышыня ў пікселях, да якой маштабуюцца кадры пры разліку руху." + }, + "mask": { + "label": "Каардынаты маскі", + "description": "Упарадкаваныя каардынаты x,y, якія задаюць шматвугольнік маскі руху для ўключэння або выключэння вобласцей." + }, + "mqtt_off_delay": { + "label": "Затрымка MQTT «off»", + "description": "Секунд чакання пасля апошняга руху перад публікацыяй стану MQTT «off»." + }, + "enabled_in_config": { + "label": "Зыходны стан руху", + "description": "Паказвае, ці было дэтэктаванне руху ўключана ў зыходнай статычнай канфігурацыі." + }, + "raw_mask": { + "label": "Неапрацаваная маска" + } + }, + "objects": { + "label": "Аб'екты", + "description": "Прадвызначаныя налады адсочвання аб'ектаў, у тым ліку якія меткі адсочваць і фільтры для асобных аб'ектаў.", + "track": { + "label": "Аб'екты для адсочвання", + "description": "Спіс метак аб'ектаў, якія адсочваюцца для гэтай камеры." + }, + "filters": { + "label": "Фільтры аб'ектаў", + "description": "Фільтры для выяўленых аб'ектаў, якія памяншаюць памылковыя спрацоўванні (вобласць, суадносіны, пэўнасць).", + "min_area": { + "label": "Мінімальная вобласць аб'екта", + "description": "Мінімальная вобласць абмяжавальнага прамавугольніка (пікселі або працэнты) для гэтага тыпу аб'екта. Пікселі (цэлы лік) або працэнты (дробавы лік ад 0,000001 да 0,99)." + }, + "max_area": { + "label": "Максімальная вобласць аб'екта", + "description": "Максімальная вобласць абмяжавальнага прамавугольніка (пікселі або працэнты) для гэтага тыпу аб'екта. Пікселі (цэлы лік) або працэнты (дробавы лік ад 0,000001 да 0,99)." + }, + "min_ratio": { + "label": "Мінімальныя фарматныя суадносіны", + "description": "Мінімальныя суадносіны шырыні да вышыні, патрэбныя прамавугольніку, каб ён падышоў." + }, + "max_ratio": { + "label": "Максімальныя фарматныя суадносіны", + "description": "Максімальныя суадносіны шырыні да вышыні, дапушчальныя для прамавугольніка." + }, + "threshold": { + "label": "Парог даверу", + "description": "Сярэдні парог пэўнасці дэтэктавання, патрэбны, каб аб'ект лічыўся сапраўдным." + }, + "min_score": { + "label": "Мінімальная пэўнасць", + "description": "Мінімальная пэўнасць дэтэктавання ў адным кадры, патрэбная, каб аб'ект быў улічаны." + }, + "mask": { + "label": "Маска фільтра", + "description": "Каардынаты шматвугольніка, якія задаюць, дзе ў кадры дзейнічае гэты фільтр." + }, + "raw_mask": { + "label": "Неапрацаваная маска" + } + }, + "mask": { + "label": "Маска аб'ектаў", + "description": "Шматвугольнік маскі, які забараняе дэтэктаванне аб'ектаў у пазначаных вобласцях." + }, + "raw_mask": { + "label": "Неапрацаваная маска" + }, + "genai": { + "label": "Канфігурацыя GenAI для аб'ектаў", + "description": "Параметры GenAI для апісання аб'ектаў пад адсочваннем і адпраўкі кадраў на генерацыю.", + "enabled": { + "label": "Уключыць GenAI", + "description": "Прадвызначана ўключыць генерацыю апісанняў аб'ектаў пад адсочваннем праз GenAI." + }, + "use_snapshot": { + "label": "Выкарыстоўваць здымкі", + "description": "Выкарыстоўваць здымкі аб'екта замест паменшаных выяў для генерацыі апісанняў GenAI." + }, + "prompt": { + "label": "Прампт для подпісу", + "description": "Прадвызначаны шаблон прампта пры генерацыі апісанняў праз GenAI." + }, + "object_prompts": { + "label": "Прампты для аб'ектаў", + "description": "Прампты для асобных аб'ектаў, каб наладзіць вывад GenAI пад пэўныя меткі." + }, + "objects": { + "label": "Аб'екты GenAI", + "description": "Спіс метак аб'ектаў, якія прадвызначана адпраўляюцца ў GenAI." + }, + "required_zones": { + "label": "Патрэбныя зоны", + "description": "Зоны, у якія мусіць увайсці аб'ект, каб для яго генеравалася апісанне GenAI." + }, + "debug_save_thumbnails": { + "label": "Захоўваць мініяцюры", + "description": "Захоўваць паменшаныя выявы, адпраўленыя ў GenAI, для адладкі і разгляду." + }, + "send_triggers": { + "label": "Трыгеры GenAI", + "description": "Вызначае, калі адпраўляць кадры ў GenAI (пры завяршэнні, пасля абнаўленняў і г. д.).", + "tracked_object_end": { + "label": "Адпраўляць пры завяршэнні", + "description": "Адпраўляць запыт у GenAI, калі аб'ект пад адсочваннем завяршаецца." + }, + "after_significant_updates": { + "label": "Ранні трыгер GenAI", + "description": "Адпраўляць запыт у GenAI пасля пэўнай колькасці значных абнаўленняў аб'екта пад адсочваннем." + } + }, + "enabled_in_config": { + "label": "Зыходны стан GenAI", + "description": "Паказвае, ці быў GenAI уключаны ў зыходнай статычнай канфігурацыі." + } + } + }, + "record": { + "label": "Запіс", + "description": "Налады запісу і захоўвання для гэтай камеры.", + "enabled": { + "label": "Уключыць запіс", + "description": "Уключыць або адключыць запіс для гэтай камеры." + }, + "expire_interval": { + "label": "Інтэрвал ачысткі запісаў", + "description": "Хвілін паміж праходамі ачысткі, якія выдаляюць пратэрмінаваныя сегменты запісу." + }, + "continuous": { + "label": "Бесперапыннае захоўванне", + "description": "Колькасць дзён захоўвання запісаў незалежна ад аб'ектаў пад адсочваннем або руху. Задайце 0, калі трэба захоўваць толькі запісы абвестак і дэтэктаванняў.", + "days": { + "label": "Дні захоўвання", + "description": "Дзён захоўвання запісаў." + } + }, + "motion": { + "label": "Захоўванне па руху", + "description": "Колькасць дзён захоўвання запісаў, выкліканых рухам, незалежна ад аб'ектаў пад адсочваннем. Задайце 0, калі трэба захоўваць толькі запісы абвестак і дэтэктаванняў.", + "days": { + "label": "Дні захоўвання", + "description": "Дзён захоўвання запісаў." + } + }, + "detections": { + "label": "Захоўванне дэтэктаванняў", + "description": "Налады захоўвання запісаў падзей дэтэктавання, у тым ліку працягласць запісу да і пасля.", + "pre_capture": { + "label": "Секунд да падзеі", + "description": "Колькасць секунд перад падзеяй дэтэктавання, якія ўключаюцца ў запіс." + }, + "post_capture": { + "label": "Секунд пасля падзеі", + "description": "Колькасць секунд пасля падзеі дэтэктавання, якія ўключаюцца ў запіс." + }, + "retain": { + "label": "Захоўванне падзей", + "description": "Налады захоўвання запісаў падзей дэтэктавання.", + "days": { + "label": "Дні захоўвання", + "description": "Колькасць дзён захоўвання запісаў падзей дэтэктавання." + }, + "mode": { + "label": "Рэжым захоўвання", + "description": "Рэжым захоўвання: all (усе сегменты), motion (сегменты з рухам) або active_objects (сегменты з актыўнымі аб'ектамі)." + } + } + }, + "alerts": { + "label": "Захоўванне абвестак", + "description": "Налады захоўвання запісаў падзей абвестак, у тым ліку працягласць запісу да і пасля.", + "pre_capture": { + "label": "Секунд да падзеі", + "description": "Колькасць секунд перад падзеяй дэтэктавання, якія ўключаюцца ў запіс." + }, + "post_capture": { + "label": "Секунд пасля падзеі", + "description": "Колькасць секунд пасля падзеі дэтэктавання, якія ўключаюцца ў запіс." + }, + "retain": { + "label": "Захоўванне падзей", + "description": "Налады захоўвання запісаў падзей дэтэктавання.", + "days": { + "label": "Дні захоўвання", + "description": "Колькасць дзён захоўвання запісаў падзей дэтэктавання." + }, + "mode": { + "label": "Рэжым захоўвання", + "description": "Рэжым захоўвання: all (усе сегменты), motion (сегменты з рухам) або active_objects (сегменты з актыўнымі аб'ектамі)." + } + } + }, + "export": { + "label": "Канфігурацыя экспарту", + "description": "Налады, якія выкарыстоўваюцца пры экспарце запісаў, напрыклад таймлапс і апаратнае паскарэнне.", + "hwaccel_args": { + "label": "Аргументы hwaccel для экспарту", + "description": "Аргументы апаратнага паскарэння для аперацый экспарту і перакадавання." + }, + "max_concurrent": { + "label": "Максімум адначасовых экспартаў", + "description": "Максімальная колькасць задач экспарту, якія апрацоўваюцца адначасова." + }, + "chapters": { + "label": "Метаданыя раздзелаў, якія ўбудоўваюцца ў экспартаваныя запісы" + } + }, + "preview": { + "label": "Канфігурацыя перадпрагляду", + "description": "Налады якасці перадпрагляду запісаў, які паказваецца ў інтэрфейсе.", + "quality": { + "label": "Якасць перадпрагляду", + "description": "Узровень якасці перадпрагляду (very_low, low, medium, high, very_high)." + } + }, + "enabled_in_config": { + "label": "Зыходны стан запісу", + "description": "Паказвае, ці быў запіс уключаны ў зыходнай статычнай канфігурацыі." + } + }, + "review": { + "label": "Разгляд", + "description": "Налады, якія кіруюць абвесткамі, дэтэктаваннямі і зводкамі разгляду GenAI для інтэрфейсу і сховішча гэтай камеры.", + "alerts": { + "label": "Канфігурацыя абвестак", + "description": "Налады таго, якія аб'екты пад адсочваннем ствараюць абвесткі і як абвесткі захоўваюцца.", + "enabled": { + "label": "Уключыць абвесткі", + "description": "Уключыць або адключыць стварэнне абвестак для гэтай камеры." + }, + "labels": { + "label": "Меткі абвестак", + "description": "Спіс метак аб'ектаў, якія лічацца абвесткамі (напрыклад: car, person)." + }, + "required_zones": { + "label": "Патрэбныя зоны", + "description": "Зоны, у якія мусіць увайсці аб'ект, каб лічыцца абвесткай. Пакіньце пустым, каб дазволіць любую зону." + }, + "enabled_in_config": { + "label": "Зыходны стан абвестак", + "description": "Адсочвае, ці былі абвесткі ўключаны ў зыходнай статычнай канфігурацыі." + }, + "cutoff_time": { + "label": "Час завяршэння абвесткі", + "description": "Секунд чакання пасля спынення актыўнасці, што выклікае абвесткі, перад завяршэннем абвесткі." + } + }, + "detections": { + "label": "Канфігурацыя дэтэктаванняў", + "description": "Налады таго, якія аб'екты пад адсочваннем ствараюць дэтэктаванні (не абвесткі) і як дэтэктаванні захоўваюцца.", + "enabled": { + "label": "Уключыць дэтэктаванні", + "description": "Уключыць або адключыць падзеі дэтэктавання для гэтай камеры." + }, + "labels": { + "label": "Меткі дэтэктаванняў", + "description": "Спіс метак аб'ектаў, якія лічацца падзеямі дэтэктавання." + }, + "required_zones": { + "label": "Патрэбныя зоны", + "description": "Зоны, у якія мусіць увайсці аб'ект, каб лічыцца дэтэктаваннем. Пакіньце пустым, каб дазволіць любую зону." + }, + "cutoff_time": { + "label": "Час завяршэння дэтэктавання", + "description": "Секунд чакання пасля спынення актыўнасці, што выклікае дэтэктаванні, перад завяршэннем дэтэктавання." + }, + "enabled_in_config": { + "label": "Зыходны стан дэтэктаванняў", + "description": "Адсочвае, ці былі дэтэктаванні ўключаны ў зыходнай статычнай канфігурацыі." + } + }, + "genai": { + "label": "Канфігурацыя GenAI", + "description": "Кіруе выкарыстаннем generative AI для стварэння апісанняў і зводак элементаў разгляду.", + "enabled": { + "label": "Уключыць апісанні GenAI", + "description": "Уключыць або адключыць створаныя GenAI апісанні і зводкі для элементаў разгляду." + }, + "alerts": { + "label": "Уключыць GenAI для абвестак", + "description": "Выкарыстоўваць GenAI для стварэння апісанняў элементаў-абвестак." + }, + "detections": { + "label": "Уключыць GenAI для дэтэктаванняў", + "description": "Выкарыстоўваць GenAI для стварэння апісанняў элементаў-дэтэктаванняў." + }, + "image_source": { + "label": "Крыніца відарысаў для разгляду", + "description": "Крыніца відарысаў, якія адпраўляюцца ў GenAI («preview» або «recordings»). «recordings» дае кадры вышэйшай якасці, але расходуе больш такенаў." + }, + "additional_concerns": { + "label": "Дадатковыя заўвагі", + "description": "Спіс дадатковых заўваг або нататак, якія GenAI мусіць улічваць пры ацэнцы актыўнасці на гэтай камеры." + }, + "debug_save_thumbnails": { + "label": "Захоўваць мініяцюры", + "description": "Захоўваць паменшаныя выявы, якія адпраўляюцца правайдару GenAI, для адладкі і разгляду." + }, + "enabled_in_config": { + "label": "Зыходны стан GenAI", + "description": "Адсочвае, ці быў разгляд праз GenAI уключаны ў зыходнай статычнай канфігурацыі." + }, + "preferred_language": { + "label": "Пажаданая мова", + "description": "Пажаданая мова, якую запытваць у правайдара GenAI для створаных адказаў." + }, + "activity_context_prompt": { + "label": "Прампт кантэксту актыўнасці", + "description": "Уласны прампт, які апісвае, якая актыўнасць падазроная, а якая не, каб даць кантэкст для зводак GenAI." + } + } + }, + "semantic_search": { + "label": "Семантычны пошук", + "description": "Налады семантычнага пошуку, які будуе і запытвае ўбудаванні аб'ектаў, каб знаходзіць падобныя элементы.", + "triggers": { + "label": "Трыгеры", + "description": "Дзеянні і ўмовы супадзення для трыгераў семантычнага пошуку гэтай камеры.", + "friendly_name": { + "label": "Зразумелая назва", + "description": "Неабавязковая зразумелая назва гэтага трыгера для інтэрфейсу." + }, + "enabled": { + "label": "Уключыць гэты трыгер", + "description": "Уключыць або адключыць гэты трыгер семантычнага пошуку." + }, + "type": { + "label": "Тып трыгера", + "description": "Тып трыгера: «thumbnail» (супадзенне па відарысе) або «description» (супадзенне па тэксце)." + }, + "data": { + "label": "Змест трыгера", + "description": "Тэкставая фраза або ID паменшанай выявы для супастаўлення з аб'ектамі пад адсочваннем." + }, + "threshold": { + "label": "Парог трыгера", + "description": "Мінімальны бал падабенства (0-1), патрэбны для спрацоўвання гэтага трыгера." + }, + "actions": { + "label": "Дзеянні трыгера", + "description": "Спіс дзеянняў пры спрацоўванні трыгера (notification, sub_label, attribute)." + } + } + }, + "snapshots": { + "label": "Здымкі", + "description": "Налады здымкаў аб'ектаў пад адсочваннем, створаных праз API, для гэтай камеры.", + "enabled": { + "label": "Уключыць здымкі", + "description": "Уключыць або адключыць захаванне здымкаў для гэтай камеры." + }, + "timestamp": { + "label": "Накладанне меткі часу", + "description": "Накладаць метку часу на здымкі з API." + }, + "bounding_box": { + "label": "Накладанне абмяжавальнага прамавугольніка", + "description": "Маляваць абмяжавальныя прамавугольнікі аб'ектаў пад адсочваннем на здымках з API." + }, + "crop": { + "label": "Абразаць здымак", + "description": "Абразаць здымкі з API па абмяжавальным прамавугольніку выяўленага аб'екта." + }, + "required_zones": { + "label": "Патрэбныя зоны", + "description": "Зоны, у якія мусіць увайсці аб'ект, каб быў захаваны здымак." + }, + "height": { + "label": "Вышыня здымка", + "description": "Вышыня (у пікселях), да якой змяняюцца здымкі з API. Пакіньце пустым, каб захаваць зыходны памер." + }, + "retain": { + "label": "Захоўванне здымкаў", + "description": "Налады захоўвання здымкаў, у тым ліку прадвызначаныя дні і перавызначэнні для асобных аб'ектаў.", + "default": { + "label": "Прадвызначанае захоўванне", + "description": "Прадвызначаная колькасць дзён захоўвання здымкаў." + }, + "objects": { + "label": "Захоўванне па аб'ектах", + "description": "Перавызначэнні дзён захоўвання здымкаў для асобных аб'ектаў." + } + }, + "quality": { + "label": "Якасць здымка", + "description": "Якасць кадавання захаваных здымкаў (0-100)." + } + }, + "timestamp_style": { + "label": "Стыль меткі часу", + "description": "Параметры афармлення метак часу на здымках і ў адладачным выглядзе.", + "position": { + "label": "Становішча меткі часу", + "description": "Становішча меткі часу на відарысе (tl/tr/bl/br)." + }, + "format": { + "label": "Фармат меткі часу", + "description": "Радок фармату даты і часу для метак часу (коды фармату datetime з Python)." + }, + "color": { + "label": "Колер меткі часу", + "description": "Значэнні RGB для тэксту меткі часу (усе значэнні 0-255).", + "red": { + "label": "Чырвоны", + "description": "Чырвоная складовая (0-255) колеру меткі часу." + }, + "green": { + "label": "Зялёны", + "description": "Зялёная складовая (0-255) колеру меткі часу." + }, + "blue": { + "label": "Сіні", + "description": "Сіняя складовая (0-255) колеру меткі часу." + } + }, + "thickness": { + "label": "Таўшчыня меткі часу", + "description": "Таўшчыня ліній тэксту меткі часу." + }, + "effect": { + "label": "Эфект меткі часу", + "description": "Візуальны эфект тэксту меткі часу (none, solid, shadow)." + } + }, + "best_image_timeout": { + "label": "Тайм-аўт лепшага відарыса", + "description": "Колькі чакаць відарыс з найвышэйшым балам пэўнасці." + }, + "mqtt": { + "label": "MQTT", + "description": "Налады публікацыі відарысаў у MQTT.", + "enabled": { + "label": "Адпраўляць відарыс", + "description": "Уключыць публікацыю здымкаў аб'ектаў у топікі MQTT для гэтай камеры." + }, + "timestamp": { + "label": "Дадаць метку часу", + "description": "Накладаць метку часу на відарысы, якія публікуюцца ў MQTT." + }, + "bounding_box": { + "label": "Дадаць абмяжавальны прамавугольнік", + "description": "Маляваць абмяжавальныя прамавугольнікі на відарысах, якія публікуюцца праз MQTT." + }, + "crop": { + "label": "Абразаць відарыс", + "description": "Абразаць відарысы, якія публікуюцца ў MQTT, па абмяжавальным прамавугольніку выяўленага аб'екта." + }, + "height": { + "label": "Вышыня відарыса", + "description": "Вышыня (у пікселях), да якой змяняюцца відарысы, што публікуюцца праз MQTT." + }, + "required_zones": { + "label": "Патрэбныя зоны", + "description": "Зоны, у якія мусіць увайсці аб'ект, каб відарыс быў апублікаваны ў MQTT." + }, + "quality": { + "label": "Якасць JPEG", + "description": "Якасць JPEG для відарысаў, якія публікуюцца ў MQTT (0-100)." + } + }, + "notifications": { + "label": "Апавяшчэнні", + "description": "Налады ўключэння апавяшчэнняў для гэтай камеры і кіравання імі.", + "enabled": { + "label": "Уключыць апавяшчэнні", + "description": "Уключыць або адключыць апавяшчэнні для гэтай камеры." + }, + "email": { + "label": "Адрас эл. пошты для апавяшчэнняў", + "description": "Адрас эл. пошты для push-апавяшчэнняў або патрэбны некаторым правайдарам апавяшчэнняў." + }, + "cooldown": { + "label": "Перыяд астывання", + "description": "Перыяд астывання (у секундах) паміж апавяшчэннямі, каб не спамліць атрымальнікаў." + }, + "enabled_in_config": { + "label": "Зыходны стан апавяшчэнняў", + "description": "Паказвае, ці былі апавяшчэнні ўключаны ў зыходнай статычнай канфігурацыі." + } + }, + "onvif": { + "label": "ONVIF", + "description": "Налады злучэння ONVIF і аўтаадсочвання PTZ для гэтай камеры.", + "host": { + "label": "Хост ONVIF", + "description": "Хост (і неабавязковая схема) сэрвісу ONVIF для гэтай камеры." + }, + "port": { + "label": "Порт ONVIF", + "description": "Нумар порта сэрвісу ONVIF." + }, + "user": { + "label": "Імя карыстальніка ONVIF", + "description": "Імя карыстальніка для праверкі сапраўднасці ONVIF. Некаторыя прылады патрабуюць уліковы запіс адміністратара." + }, + "password": { + "label": "Пароль ONVIF", + "description": "Пароль для праверкі сапраўднасці ONVIF." + }, + "tls_insecure": { + "label": "Адключыць праверку TLS", + "description": "Прапускаць праверку TLS і адключыць digest-аўтарызацыю для ONVIF (небяспечна, толькі ў давераных сетках)." + }, + "profile": { + "label": "Профіль ONVIF", + "description": "Пэўны медыяпрофіль ONVIF для кіравання PTZ, які вызначаецца па токене або назве. Калі не зададзены, аўтаматычна выбіраецца першы профіль са слушнай канфігурацыяй PTZ." + }, + "autotracking": { + "label": "Аўтаадсочванне", + "description": "Аўтаматычна адсочваць рухомыя аб'екты і трымаць іх у цэнтры кадра з дапамогай рухаў камеры PTZ.", + "enabled": { + "label": "Уключыць аўтаадсочванне", + "description": "Уключыць або адключыць аўтаматычнае адсочванне выяўленых аб'ектаў камерай PTZ." + }, + "calibrate_on_startup": { + "label": "Каліброўка пры запуску", + "description": "Вымяраць хуткасць матораў PTZ пры запуску, каб павысіць дакладнасць адсочвання. Пасля каліброўкі Frigate абновіць канфігурацыю значэннем movement_weights." + }, + "zooming": { + "label": "Рэжым маштабавання", + "description": "Кіраванне маштабаваннем: disabled (толькі паварот і нахіл), absolute (найбольш сумяшчальны) або relative (адначасовыя паварот, нахіл і маштабаванне)." + }, + "zoom_factor": { + "label": "Каэфіцыент маштабавання", + "description": "Кіраванне ўзроўнем набліжэння да аб'ектаў пад адсочваннем. Меншыя значэнні пакідаюць больш сцэны ў кадры, большыя набліжаюць мацней, але могуць згубіць адсочванне. Значэнні ад 0,1 да 0,75." + }, + "track": { + "label": "Аб'екты пад адсочваннем", + "description": "Спіс тыпаў аб'ектаў, якія мусяць запускаць аўтаадсочванне." + }, + "required_zones": { + "label": "Патрэбныя зоны", + "description": "Аб'екты мусяць увайсці ў адну з гэтых зон, перш чым пачнецца аўтаадсочванне." + }, + "return_preset": { + "label": "Прэсет вяртання", + "description": "Назва прэсета ONVIF, наладжанага ў прашыўцы камеры, да якога вярнуцца пасля заканчэння адсочвання." + }, + "timeout": { + "label": "Тайм-аўт вяртання", + "description": "Чакаць столькі секунд пасля страты адсочвання, перш чым вярнуць камеру ў становішча прэсета." + }, + "movement_weights": { + "label": "Вагі руху", + "description": "Значэнні каліброўкі, створаныя аўтаматычна пры калібраванні камеры. Не змяняйце ўручную." + }, + "enabled_in_config": { + "label": "Зыходны стан аўтаадсочвання", + "description": "Унутранае поле, якое адсочвае, ці было аўтаадсочванне ўключана ў канфігурацыі." + } + }, + "ignore_time_mismatch": { + "label": "Ігнараваць разыходжанне часу", + "description": "Ігнараваць разыходжанне сінхранізацыі часу паміж камерай і серверам Frigate пры сувязі праз ONVIF." + } + }, + "type": { + "label": "Тып камеры", + "description": "Тып камеры" + }, + "ui": { + "label": "Інтэрфейс камеры", + "description": "Парадак адлюстравання і бачнасць гэтай камеры ў інтэрфейсе. Парадак уплывае на прадвызначаную панэль. Для больш дакладнага кіравання карыстайцеся групамі камер.", + "order": { + "label": "Парадак у інтэрфейсе", + "description": "Лічбавы парадак сартавання камеры ў інтэрфейсе (прадвызначаная панэль і спісы). Большыя лікі ідуць пазней." + }, + "dashboard": { + "label": "Паказваць на панэлі жывога прагляду", + "description": "Ці бачная гэта камера на прадвызначанай панэлі «Усе камеры». Камера застаецца даступнай усюды ў інтэрфейсе, у тым ліку ў групах камер і наладах." + }, + "review": { + "label": "Паказваць у разглядзе", + "description": "Ці бачная гэта камера ў разглядзе (старонка разгляду і яе фільтр камер, разгляд руху і выгляд гісторыі)." + } + }, + "webui_url": { + "label": "URL камеры", + "description": "URL для пераходу да камеры непасрэдна са старонкі сістэмы" + }, + "profiles": { + "label": "Профілі", + "description": "Найменаваныя профілі канфігурацыі з частковымі перавызначэннямі, якія можна ўключаць падчас працы." + }, + "enabled_in_config": { + "label": "Зыходны стан камеры", + "description": "Захоўваць зыходны стан камеры." + } +} diff --git a/web/public/locales/be/config/global.json b/web/public/locales/be/config/global.json new file mode 100644 index 0000000000..ef4b8ca3a1 --- /dev/null +++ b/web/public/locales/be/config/global.json @@ -0,0 +1,1614 @@ +{ + "audio": { + "label": "Дэтэктаванне гуку", + "enabled": { + "label": "Уключыць дэтэктаванне гуку", + "description": "Уключыць або адключыць дэтэктаванне гукавых падзей для ўсіх камер. Можна перавызначыць для кожнай камеры." + }, + "max_not_heard": { + "label": "Тайм-аўт завяршэння", + "description": "Колькасць секунд без наладжанага тыпу гуку, пасля якіх гукавая падзея завяршаецца." + }, + "min_volume": { + "label": "Мінімальная гучнасць", + "description": "Мінімальны парог гучнасці RMS для запуску дэтэктавання гуку. Меншыя значэнні павышаюць адчувальнасць (напрыклад, 200 - высокая, 500 - сярэдняя, 1000 - нізкая)." + }, + "listen": { + "label": "Тыпы для праслухоўвання", + "description": "Спіс тыпаў гукавых падзей для дэтэктавання (напрыклад: bark, fire_alarm, speech, yell)." + }, + "filters": { + "label": "Фільтры гуку", + "description": "Налады фільтраў для асобных тыпаў гуку, напрыклад парогі пэўнасці, што памяншаюць памылковыя спрацоўванні.", + "threshold": { + "label": "Мінімальная пэўнасць гуку", + "description": "Мінімальны парог пэўнасці, каб гукавая падзея была ўлічана." + } + }, + "enabled_in_config": { + "label": "Зыходны стан гуку", + "description": "Паказвае, ці было дэтэктаванне гуку ўключана ў зыходным файле статычнай канфігурацыі." + }, + "num_threads": { + "label": "Патокі дэтэктавання", + "description": "Колькасць патокаў для апрацоўкі дэтэктавання гуку." + }, + "description": "Налады дэтэктавання падзей па гуку для ўсіх камер. Можна перавызначыць для кожнай камеры." + }, + "audio_transcription": { + "label": "Транскрыпцыя гуку", + "description": "Налады жывой і маўленчай транскрыпцыі гуку для падзей і жывых субтытраў.", + "live_enabled": { + "label": "Жывая транскрыпцыя", + "description": "Уключыць жывое трансляванне транскрыпцыі гуку па меры яго паступлення." + }, + "enabled": { + "label": "Уключыць транскрыпцыю гуку", + "description": "Уключыць або адключыць аўтаматычную транскрыпцыю гуку для ўсіх камер. Можна перавызначыць для кожнай камеры." + }, + "language": { + "label": "Мова транскрыпцыі", + "description": "Код мовы для транскрыпцыі і перакладу (напрыклад «be» для беларускай). Падтрыманыя коды моў: https://whisper-api.com/docs/languages/" + }, + "device": { + "label": "Прылада транскрыпцыі", + "description": "Ключ прылады (CPU/GPU) для запуску мадэлі транскрыпцыі. Пакуль падтрымліваюцца толькі GPU NVIDIA CUDA." + }, + "model_size": { + "label": "Памер мадэлі", + "description": "Памер мадэлі для аўтаномнай транскрыпцыі гукавых падзей." + } + }, + "birdseye": { + "label": "Birdseye", + "description": "Налады зборнага выгляду Birdseye, які аб'ядноўвае некалькі плыняў камер у адну раскладку.", + "enabled": { + "label": "Уключыць Birdseye", + "description": "Уключыць або адключыць функцыю выгляду Birdseye." + }, + "mode": { + "label": "Рэжым адсочвання", + "description": "Рэжым уключэння камер у Birdseye: «objects», «motion» або «continuous»." + }, + "order": { + "label": "Пазіцыя", + "description": "Лічбавае становішча, якое вызначае парадак камеры ў раскладцы Birdseye." + }, + "restream": { + "label": "Рэтрансляцыя RTSP", + "description": "Рэтранслюе вывад Birdseye як плынь RTSP. Пры ўключэнні Birdseye працуе бесперапынна." + }, + "width": { + "label": "Шырыня", + "description": "Шырыня выніковага кадра Birdseye (у пікселях)." + }, + "height": { + "label": "Вышыня", + "description": "Вышыня выніковага кадра Birdseye (у пікселях)." + }, + "quality": { + "label": "Якасць кадавання", + "description": "Якасць кадавання плыні mpeg1 для Birdseye (1 - найвышэйшая, 31 - найніжэйшая)." + }, + "inactivity_threshold": { + "label": "Парог бяздзейнасці", + "description": "Секунд бяздзейнасці, пасля якіх камера перастае паказвацца ў Birdseye." + }, + "layout": { + "label": "Макет", + "description": "Параметры раскладкі кампазіцыі Birdseye.", + "scaling_factor": { + "label": "Каэфіцыент маштабавання", + "description": "Каэфіцыент маштабавання для разліку раскладкі (дыяпазон ад 1,0 да 5,0)." + }, + "max_cameras": { + "label": "Максімум камер", + "description": "Максімальная колькасць камер, якія паказваюцца ў Birdseye адначасова. Паказваюцца самыя апошнія камеры." + } + }, + "idle_heartbeat_fps": { + "label": "FPS сігналу пры прастоі", + "description": "Колькі разоў на секунду паўтараць апошні кадр Birdseye пры прастоі. 0 адключае." + } + }, + "detect": { + "label": "Дэтэктаванне аб'ектаў", + "description": "Налады ролі «detect», якая запускае дэтэктаванне аб'ектаў і ініцыялізуе трэкеры.", + "enabled": { + "label": "Уключыць дэтэктаванне аб'ектаў", + "description": "Уключыць або адключыць дэтэктаванне аб'ектаў для ўсіх камер. Можна перавызначыць для кожнай камеры." + }, + "height": { + "label": "Вышыня дэтэктавання", + "description": "Вышыня кадраў (у пікселях) для плыні «detect». Пакіньце пустым, каб выкарыстоўваць уласнае разрозненне плыні." + }, + "width": { + "label": "Шырыня дэтэктавання", + "description": "Шырыня кадраў (у пікселях) для плыні «detect». Пакіньце пустым, каб выкарыстоўваць уласнае разрозненне плыні." + }, + "fps": { + "label": "FPS дэтэктавання", + "description": "Жаданая колькасць кадраў на секунду для дэтэктавання. Меншыя значэнні зніжаюць нагрузку на CPU (рэкамендуецца 5, вышэй - не больш за 10 - толькі для вельмі хуткіх аб'ектаў)." + }, + "min_initialized": { + "label": "Мінімум кадраў для ініцыялізацыі", + "description": "Колькасць паслядоўных спрацоўванняў дэтэктавання, патрэбных для стварэння аб'екта пад адсочваннем. Павялічце, каб паменшыць колькасць памылковых ініцыялізацый. Прадвызначана - fps, падзеленае на 2." + }, + "max_disappeared": { + "label": "Максімум зніклых кадраў", + "description": "Колькасць кадраў без дэтэктавання, пасля якіх аб'ект пад адсочваннем лічыцца зніклым." + }, + "stationary": { + "label": "Канфігурацыя нерухомых аб'ектаў", + "description": "Налады для дэтэктавання нерухомых аб'ектаў і кіравання імі.", + "interval": { + "label": "Інтэрвал для нерухомых", + "description": "Як часта (у кадрах) правяраць дэтэктаванне, каб пацвердзіць нерухомы аб'ект." + }, + "threshold": { + "label": "Парог нерухомасці", + "description": "Колькасць кадраў без змены становішча, патрэбная, каб пазначыць аб'ект як нерухомы." + }, + "max_frames": { + "label": "Максімум кадраў", + "description": "Абмяжоўвае, як доўга нерухомыя аб'екты адсочваюцца, перш чым будуць адкінуты.", + "default": { + "label": "Прадвызначаны максімум кадраў", + "description": "Прадвызначаная максімальная колькасць кадраў для адсочвання нерухомага аб'екта." + }, + "objects": { + "label": "Максімум кадраў па аб'ектах", + "description": "Перавызначэнні максімальнай колькасці кадраў адсочвання нерухомых аб'ектаў для асобных аб'ектаў." + } + }, + "classifier": { + "label": "Уключыць візуальны класіфікатар", + "description": "Выкарыстоўваць візуальны класіфікатар, каб выяўляць сапраўды нерухомыя аб'екты, нават калі абмяжавальныя прамавугольнікі дрыжаць." + } + }, + "annotation_offset": { + "label": "Зрух анатацый", + "description": "На колькі мілісекунд зрушыць прамавугольнікі аб'ектаў, каб яны супадалі з запісаным відэа: плыні «detect» і «record» рэдка ідэальна сінхронныя. Можа быць дадатным або адмоўным." + } + }, + "face_recognition": { + "label": "Распазнаванне асобы", + "enabled": { + "label": "Уключыць распазнаванне асобы", + "description": "Уключыць або адключыць распазнаванне асобы для ўсіх камер. Можна перавызначыць для кожнай камеры." + }, + "min_area": { + "label": "Мінімальная вобласць твару", + "description": "Мінімальная вобласць (у пікселях) прамавугольніка выяўленага твару, патрэбная для спробы распазнавання." + }, + "description": "Налады дэтэктавання і распазнавання твараў для ўсіх камер. Можна перавызначыць для кожнай камеры.", + "model_size": { + "label": "Памер мадэлі", + "description": "Памер мадэлі для ўбудаванняў твару (small/large). Большая можа патрабаваць GPU." + }, + "unknown_score": { + "label": "Парог бала для невядомых", + "description": "Парог адлегласці, ніжэй якога твар лічыцца магчымым супадзеннем (большае значэнне - строгі адбор)." + }, + "detection_threshold": { + "label": "Парог дэтэктавання", + "description": "Мінімальная пэўнасць дэтэктавання, патрэбная, каб лічыць выяўленне твару слушным." + }, + "recognition_threshold": { + "label": "Парог распазнавання", + "description": "Парог адлегласці ўбудаванняў твару, пры якім два твары лічацца супадзеннем." + }, + "min_faces": { + "label": "Мінімум твараў", + "description": "Мінімальная колькасць распазнаванняў твару, патрэбная, перш чым да чалавека будзе дадана распазнаная падметка." + }, + "save_attempts": { + "label": "Захоўваць спробы", + "description": "Колькасць спроб распазнавання асобы, якія захоўваюцца для інтэрфейсу апошніх распазнаванняў." + }, + "blur_confidence_filter": { + "label": "Фільтр пэўнасці па размытасці", + "description": "Карэктаваць балы пэўнасці з улікам размытасці відарыса, каб паменшыць памылковыя спрацоўванні на нізкаякасных тварах." + }, + "device": { + "label": "Прылада", + "description": "Гэта перавызначэнне для выбару пэўнай прылады. Падрабязней: https://onnxruntime.ai/docs/execution-providers/" + } + }, + "ffmpeg": { + "path": { + "label": "Шлях да FFmpeg", + "description": "Шлях да праграмы FFmpeg або псеўданім версіі («7.0» ці «8.0»)." + }, + "global_args": { + "label": "Глабальныя аргументы FFmpeg", + "description": "Глабальныя аргументы, якія перадаюцца працэсам FFmpeg." + }, + "hwaccel_args": { + "label": "Аргументы апаратнага паскарэння", + "description": "Аргументы апаратнага паскарэння для FFmpeg. Рэкамендуюцца прэсеты пад канкрэтнага пастаўшчыка." + }, + "input_args": { + "label": "Уваходныя аргументы", + "description": "Уваходныя аргументы, якія прымяняюцца да ўваходных плыняў FFmpeg." + }, + "output_args": { + "label": "Выходныя аргументы", + "description": "Прадвызначаныя выходныя аргументы для розных роляў FFmpeg, напрыклад detect і record.", + "detect": { + "label": "Выходныя аргументы для detect", + "description": "Прадвызначаныя выходныя аргументы для плыняў з роляй «detect»." + }, + "record": { + "label": "Выходныя аргументы для record", + "description": "Прадвызначаныя выходныя аргументы для плыняў з роляй «record»." + } + }, + "retry_interval": { + "label": "Час паўтору FFmpeg", + "description": "Секунд чакання перад спробай перападключыць плынь камеры пасля збою. Прадвызначана 10." + }, + "apple_compatibility": { + "label": "Сумяшчальнасць з Apple", + "description": "Уключыць пазначэнне HEVC для лепшай сумяшчальнасці з плэерамі Apple пры запісе ў H.265." + }, + "gpu": { + "label": "Індэкс GPU", + "description": "Прадвызначаны індэкс GPU для апаратнага паскарэння, калі яно даступнае." + }, + "inputs": { + "label": "Уваходы камеры", + "description": "Спіс азначэнняў уваходных плыняў (шляхі і ролі) для гэтай камеры.", + "path": { + "label": "Уваходны шлях", + "description": "URL або шлях уваходнай плыні камеры." + }, + "roles": { + "label": "Ролі ўваходу", + "description": "Ролі гэтага ўваходнай плыні." + }, + "global_args": { + "label": "Глабальныя аргументы FFmpeg", + "description": "Глабальныя аргументы FFmpeg для гэтага ўваходнай плыні." + }, + "hwaccel_args": { + "label": "Аргументы апаратнага паскарэння", + "description": "Аргументы апаратнага паскарэння для гэтага ўваходнай плыні." + }, + "input_args": { + "label": "Уваходныя аргументы", + "description": "Уваходныя аргументы, характэрныя для гэтай плыні." + } + }, + "label": "FFMPEG", + "description": "Налады FFmpeg, у тым ліку шлях да праграмы, аргументы, параметры hwaccel і выходныя аргументы для кожнай ролі." + }, + "live": { + "label": "Жывое прайграванне", + "streams": { + "label": "Назвы жывых плыняў", + "description": "Супастаўленне наладжаных назваў плыняў з назвамі рэтрансляцыі або go2rtc для жывога прайгравання." + }, + "height": { + "label": "Вышыня жывой плыні", + "description": "Вышыня (у пікселях) для адлюстравання жывой плыні jsmpeg у вэб-інтэрфейсе. Мусіць быць не большай за вышыню плыні «detect»." + }, + "quality": { + "label": "Якасць жывой плыні", + "description": "Якасць кадавання плыні jsmpeg (1 - найвышэйшая, 31 - найніжэйшая)." + }, + "description": "Налады разрознення і якасці жывой плыні jsmpeg. Не ўплывае на камеры з рэтрансляцыяй, якія выкарыстоўваюць go2rtc для жывога прагляду." + }, + "lpr": { + "label": "Распазнаванне нумарных знакаў", + "description": "Налады распазнавання нумарных знакаў, у тым ліку парогі дэтэктавання, фарматаванне і вядомыя знакі.", + "enabled": { + "label": "Уключыць LPR", + "description": "Уключыць або адключыць распазнаванне нумарных знакаў для ўсіх камер. Можна перавызначыць для кожнай камеры." + }, + "expire_time": { + "label": "Секунд да пратэрміноўкі", + "description": "Час у секундах, пасля якога незаўважаны знак прыбіраецца з трэкера (толькі для камер, прызначаных пад LPR)." + }, + "min_area": { + "label": "Мінімальная вобласць знака", + "description": "Мінімальная вобласць знака (у пікселях), патрэбная для спробы распазнавання." + }, + "enhancement": { + "label": "Узровень паляпшэння", + "description": "Узровень паляпшэння (0-10), які прымяняецца да абрэзкі знака перад OCR. Большыя значэнні не заўсёды паляпшаюць вынік: узроўні вышэй за 5 могуць працаваць толькі з начнымі знакамі, карыстайцеся асцярожна." + }, + "model_size": { + "label": "Памер мадэлі", + "description": "Памер мадэлі для дэтэктавання і распазнавання тэксту. Большасці карыстальнікаў падыдзе «small»." + }, + "detection_threshold": { + "label": "Парог дэтэктавання", + "description": "Парог пэўнасці дэтэктавання, пры якім запускаецца OCR для меркаванага знака." + }, + "recognition_threshold": { + "label": "Парог распазнавання", + "description": "Парог пэўнасці, патрэбны, каб распазнаны тэкст знака быў дададзены як падметка." + }, + "min_plate_length": { + "label": "Мінімальная даўжыня знака", + "description": "Мінімальная колькасць сімвалаў, якую мусіць мець распазнаны знак, каб лічыцца слушным." + }, + "format": { + "label": "Рэгулярны выраз фармату знака", + "description": "Неабавязковы рэгулярны выраз для праверкі распазнаных знакаў на адпаведнасць чаканаму фармату." + }, + "match_distance": { + "label": "Адлегласць супадзення", + "description": "Колькасць разыходжанняў у сімвалах, дапушчальная пры параўнанні выяўленых знакаў з вядомымі." + }, + "known_plates": { + "label": "Вядомыя знакі", + "description": "Спіс знакаў або рэгулярных выразаў, якія трэба асобна адсочваць або па якіх выдаваць абвесткі." + }, + "debug_save_plates": { + "label": "Захоўваць знакі для адладкі", + "description": "Захоўваць абрэзкі відарысаў знакаў для адладкі працы LPR." + }, + "device": { + "label": "Прылада", + "description": "Гэта перавызначэнне для выбару пэўнай прылады. Падрабязней: https://onnxruntime.ai/docs/execution-providers/" + }, + "replace_rules": { + "label": "Правілы замены", + "description": "Правілы замены па рэгулярным выразе, якія нармалізуюць распазнаныя знакі перад супастаўленнем.", + "pattern": { + "label": "Шаблон рэгулярнага выразу" + }, + "replacement": { + "label": "Радок замены" + } + } + }, + "motion": { + "label": "Дэтэктаванне руху", + "enabled": { + "label": "Уключыць дэтэктаванне руху", + "description": "Уключыць або адключыць дэтэктаванне руху для ўсіх камер. Можна перавызначыць для кожнай камеры." + }, + "threshold": { + "label": "Парог руху", + "description": "Парог розніцы пікселяў для дэтэктара руху. Большыя значэнні зніжаюць адчувальнасць (дыяпазон 1-255)." + }, + "lightning_threshold": { + "label": "Парог успышак", + "description": "Парог для выяўлення і ігнаравання кароткіх успышак асвятлення (менш - больш адчувальна, значэнні ад 0,3 да 1,0). Гэта не спыняе дэтэктаванне руху цалкам: дэтэктар проста перастае аналізаваць далейшыя кадры пасля перавышэння парога. Запісы па руху ў такія моманты ўсё роўна ствараюцца." + }, + "skip_motion_threshold": { + "label": "Парог прапускання руху", + "description": "Калі задана значэнне ад 0,0 да 1,0 і за адзін кадр змянілася большая доля відарыса, дэтэктар не верне прамавугольнікаў руху і адразу перакалібруецца. Гэта эканоміць CPU і памяншае памылковыя спрацоўванні падчас маланкі, буры і да т.п., але можа прапусціць сапраўдныя падзеі, напрыклад аўтаадсочванне аб'екта камерай PTZ. Выбар паміж стратай некалькіх мегабайт запісу і праглядам пары кароткіх кліпаў. Пакіньце незададзеным (None), каб адключыць." + }, + "improve_contrast": { + "label": "Паляпшаць кантраснасць", + "description": "Паляпшаць кантраснасць кадраў перад аналізам руху, каб дапамагчы дэтэктаванню." + }, + "contour_area": { + "label": "Вобласць контуру", + "description": "Мінімальная вобласць контуру ў пікселях, патрэбная, каб контур руху быў улічаны." + }, + "delta_alpha": { + "label": "Дэльта-альфа", + "description": "Каэфіцыент альфа-змешвання пры разліку розніцы кадраў для руху." + }, + "frame_alpha": { + "label": "Альфа кадра", + "description": "Значэнне альфа пры змешванні кадраў для папярэдняй апрацоўкі руху." + }, + "frame_height": { + "label": "Вышыня кадра", + "description": "Вышыня ў пікселях, да якой маштабуюцца кадры пры разліку руху." + }, + "mask": { + "label": "Каардынаты маскі", + "description": "Упарадкаваныя каардынаты x,y, якія задаюць шматвугольнік маскі руху для ўключэння або выключэння вобласцей." + }, + "mqtt_off_delay": { + "label": "Затрымка MQTT «off»", + "description": "Секунд чакання пасля апошняга руху перад публікацыяй стану MQTT «off»." + }, + "enabled_in_config": { + "label": "Зыходны стан руху", + "description": "Паказвае, ці было дэтэктаванне руху ўключана ў зыходнай статычнай канфігурацыі." + }, + "raw_mask": { + "label": "Неапрацаваная маска" + }, + "description": "Прадвызначаныя налады дэтэктавання руху для камер, калі яны не перавызначаны асобна." + }, + "objects": { + "label": "Аб'екты", + "description": "Прадвызначаныя налады адсочвання аб'ектаў, у тым ліку якія меткі адсочваць і фільтры для асобных аб'ектаў.", + "track": { + "label": "Аб'екты для адсочвання", + "description": "Спіс метак аб'ектаў, якія адсочваюцца для ўсіх камер. Можна перавызначыць для кожнай камеры." + }, + "filters": { + "label": "Фільтры аб'ектаў", + "description": "Фільтры для выяўленых аб'ектаў, якія памяншаюць памылковыя спрацоўванні (вобласць, суадносіны, пэўнасць).", + "min_area": { + "label": "Мінімальная вобласць аб'екта", + "description": "Мінімальная вобласць абмяжавальнага прамавугольніка (пікселі або працэнты) для гэтага тыпу аб'екта. Пікселі (цэлы лік) або працэнты (дробавы лік ад 0,000001 да 0,99)." + }, + "max_area": { + "label": "Максімальная вобласць аб'екта", + "description": "Максімальная вобласць абмяжавальнага прамавугольніка (пікселі або працэнты) для гэтага тыпу аб'екта. Пікселі (цэлы лік) або працэнты (дробавы лік ад 0,000001 да 0,99)." + }, + "min_ratio": { + "label": "Мінімальныя фарматныя суадносіны", + "description": "Мінімальныя суадносіны шырыні да вышыні, патрэбныя прамавугольніку, каб ён падышоў." + }, + "max_ratio": { + "label": "Максімальныя фарматныя суадносіны", + "description": "Максімальныя суадносіны шырыні да вышыні, дапушчальныя для прамавугольніка." + }, + "threshold": { + "label": "Парог даверу", + "description": "Сярэдні парог пэўнасці дэтэктавання, патрэбны, каб аб'ект лічыўся сапраўдным." + }, + "min_score": { + "label": "Мінімальная пэўнасць", + "description": "Мінімальная пэўнасць дэтэктавання ў адным кадры, патрэбная, каб аб'ект быў улічаны." + }, + "mask": { + "label": "Маска фільтра", + "description": "Каардынаты шматвугольніка, якія задаюць, дзе ў кадры дзейнічае гэты фільтр." + }, + "raw_mask": { + "label": "Неапрацаваная маска" + } + }, + "mask": { + "label": "Маска аб'ектаў", + "description": "Шматвугольнік маскі, які забараняе дэтэктаванне аб'ектаў у пазначаных вобласцях." + }, + "raw_mask": { + "label": "Неапрацаваная маска" + }, + "genai": { + "label": "Канфігурацыя GenAI для аб'ектаў", + "description": "Параметры GenAI для апісання аб'ектаў пад адсочваннем і адпраўкі кадраў на генерацыю.", + "enabled": { + "label": "Уключыць GenAI", + "description": "Прадвызначана ўключыць генерацыю апісанняў аб'ектаў пад адсочваннем праз GenAI." + }, + "use_snapshot": { + "label": "Выкарыстоўваць здымкі", + "description": "Выкарыстоўваць здымкі аб'екта замест паменшаных выяў для генерацыі апісанняў GenAI." + }, + "prompt": { + "label": "Прампт для подпісу", + "description": "Прадвызначаны шаблон прампта пры генерацыі апісанняў праз GenAI." + }, + "object_prompts": { + "label": "Прампты для аб'ектаў", + "description": "Прампты для асобных аб'ектаў, каб наладзіць вывад GenAI пад пэўныя меткі." + }, + "objects": { + "label": "Аб'екты GenAI", + "description": "Спіс метак аб'ектаў, якія прадвызначана адпраўляюцца ў GenAI." + }, + "required_zones": { + "label": "Патрэбныя зоны", + "description": "Зоны, у якія мусіць увайсці аб'ект, каб для яго генеравалася апісанне GenAI." + }, + "debug_save_thumbnails": { + "label": "Захоўваць мініяцюры", + "description": "Захоўваць паменшаныя выявы, адпраўленыя ў GenAI, для адладкі і разгляду." + }, + "send_triggers": { + "label": "Трыгеры GenAI", + "description": "Вызначае, калі адпраўляць кадры ў GenAI (пры завяршэнні, пасля абнаўленняў і г. д.).", + "tracked_object_end": { + "label": "Адпраўляць пры завяршэнні", + "description": "Адпраўляць запыт у GenAI, калі аб'ект пад адсочваннем завяршаецца." + }, + "after_significant_updates": { + "label": "Ранні трыгер GenAI", + "description": "Адпраўляць запыт у GenAI пасля пэўнай колькасці значных абнаўленняў аб'екта пад адсочваннем." + } + }, + "enabled_in_config": { + "label": "Зыходны стан GenAI", + "description": "Паказвае, ці быў GenAI уключаны ў зыходнай статычнай канфігурацыі." + } + }, + "filters_attribute": { + "label": "Фільтры атрыбутаў", + "description": "Фільтры для выяўленых атрыбутаў, якія памяншаюць памылковыя спрацоўванні (вобласць, суадносіны, пэўнасць).", + "min_area": { + "label": "Мінімальная вобласць атрыбута", + "description": "Мінімальная вобласць абмяжавальнага прамавугольніка (пікселі або працэнты) для гэтага атрыбута. Пікселі (цэлы лік) або працэнты (дробавы лік ад 0,000001 да 0,99)." + }, + "max_area": { + "label": "Максімальная вобласць атрыбута", + "description": "Максімальная вобласць абмяжавальнага прамавугольніка (пікселі або працэнты) для гэтага атрыбута. Пікселі (цэлы лік) або працэнты (дробавы лік ад 0,000001 да 0,99)." + }, + "min_ratio": { + "label": "Мінімальныя фарматныя суадносіны", + "description": "Мінімальныя суадносіны шырыні да вышыні, патрэбныя прамавугольніку, каб ён падышоў." + }, + "max_ratio": { + "label": "Максімальныя фарматныя суадносіны", + "description": "Максімальныя суадносіны шырыні да вышыні, дапушчальныя для прамавугольніка." + }, + "threshold": { + "label": "Парог даверу", + "description": "Сярэдні парог пэўнасці дэтэктавання, патрэбны, каб атрыбут лічыўся сапраўдным." + }, + "min_score": { + "label": "Мінімальная пэўнасць", + "description": "Мінімальная пэўнасць дэтэктавання ў адным кадры, патрэбная, каб звязаць гэты атрыбут з бацькоўскім аб'ектам." + }, + "mask": { + "label": "Маска фільтра", + "description": "Каардынаты шматвугольніка, якія задаюць, дзе ў кадры дзейнічае гэты фільтр." + }, + "raw_mask": { + "label": "Неапрацаваная маска" + } + } + }, + "record": { + "label": "Запіс", + "enabled": { + "label": "Уключыць запіс", + "description": "Уключыць або адключыць запіс для ўсіх камер. Можна перавызначыць для кожнай камеры." + }, + "expire_interval": { + "label": "Інтэрвал ачысткі запісаў", + "description": "Хвілін паміж праходамі ачысткі, якія выдаляюць пратэрмінаваныя сегменты запісу." + }, + "continuous": { + "label": "Бесперапыннае захоўванне", + "description": "Колькасць дзён захоўвання запісаў незалежна ад аб'ектаў пад адсочваннем або руху. Задайце 0, калі трэба захоўваць толькі запісы абвестак і дэтэктаванняў.", + "days": { + "label": "Дні захоўвання", + "description": "Дзён захоўвання запісаў." + } + }, + "motion": { + "label": "Захоўванне па руху", + "description": "Колькасць дзён захоўвання запісаў, выкліканых рухам, незалежна ад аб'ектаў пад адсочваннем. Задайце 0, калі трэба захоўваць толькі запісы абвестак і дэтэктаванняў.", + "days": { + "label": "Дні захоўвання", + "description": "Дзён захоўвання запісаў." + } + }, + "detections": { + "label": "Захоўванне дэтэктаванняў", + "description": "Налады захоўвання запісаў падзей дэтэктавання, у тым ліку працягласць запісу да і пасля.", + "pre_capture": { + "label": "Секунд да падзеі", + "description": "Колькасць секунд перад падзеяй дэтэктавання, якія ўключаюцца ў запіс." + }, + "post_capture": { + "label": "Секунд пасля падзеі", + "description": "Колькасць секунд пасля падзеі дэтэктавання, якія ўключаюцца ў запіс." + }, + "retain": { + "label": "Захоўванне падзей", + "description": "Налады захоўвання запісаў падзей дэтэктавання.", + "days": { + "label": "Дні захоўвання", + "description": "Колькасць дзён захоўвання запісаў падзей дэтэктавання." + }, + "mode": { + "label": "Рэжым захоўвання", + "description": "Рэжым захоўвання: all (усе сегменты), motion (сегменты з рухам) або active_objects (сегменты з актыўнымі аб'ектамі)." + } + } + }, + "alerts": { + "label": "Захоўванне абвестак", + "description": "Налады захоўвання запісаў падзей абвестак, у тым ліку працягласць запісу да і пасля.", + "pre_capture": { + "label": "Секунд да падзеі", + "description": "Колькасць секунд перад падзеяй дэтэктавання, якія ўключаюцца ў запіс." + }, + "post_capture": { + "label": "Секунд пасля падзеі", + "description": "Колькасць секунд пасля падзеі дэтэктавання, якія ўключаюцца ў запіс." + }, + "retain": { + "label": "Захоўванне падзей", + "description": "Налады захоўвання запісаў падзей дэтэктавання.", + "days": { + "label": "Дні захоўвання", + "description": "Колькасць дзён захоўвання запісаў падзей дэтэктавання." + }, + "mode": { + "label": "Рэжым захоўвання", + "description": "Рэжым захоўвання: all (усе сегменты), motion (сегменты з рухам) або active_objects (сегменты з актыўнымі аб'ектамі)." + } + } + }, + "export": { + "label": "Канфігурацыя экспарту", + "description": "Налады, якія выкарыстоўваюцца пры экспарце запісаў, напрыклад таймлапс і апаратнае паскарэнне.", + "hwaccel_args": { + "label": "Аргументы hwaccel для экспарту", + "description": "Аргументы апаратнага паскарэння для аперацый экспарту і перакадавання." + }, + "max_concurrent": { + "label": "Максімум адначасовых экспартаў", + "description": "Максімальная колькасць задач экспарту, якія апрацоўваюцца адначасова." + }, + "chapters": { + "label": "Метаданыя раздзелаў, якія ўбудоўваюцца ў экспартаваныя запісы" + } + }, + "preview": { + "label": "Канфігурацыя перадпрагляду", + "description": "Налады якасці перадпрагляду запісаў, які паказваецца ў інтэрфейсе.", + "quality": { + "label": "Якасць перадпрагляду", + "description": "Узровень якасці перадпрагляду (very_low, low, medium, high, very_high)." + } + }, + "enabled_in_config": { + "label": "Зыходны стан запісу", + "description": "Паказвае, ці быў запіс уключаны ў зыходнай статычнай канфігурацыі." + }, + "description": "Налады запісу і захоўвання для камер, калі яны не перавызначаны асобна." + }, + "review": { + "label": "Разгляд", + "alerts": { + "label": "Канфігурацыя абвестак", + "description": "Налады таго, якія аб'екты пад адсочваннем ствараюць абвесткі і як абвесткі захоўваюцца.", + "enabled": { + "label": "Уключыць абвесткі", + "description": "Уключыць або адключыць стварэнне абвестак для ўсіх камер. Можна перавызначыць для кожнай камеры." + }, + "labels": { + "label": "Меткі абвестак", + "description": "Спіс метак аб'ектаў, якія лічацца абвесткамі (напрыклад: car, person)." + }, + "required_zones": { + "label": "Патрэбныя зоны", + "description": "Зоны, у якія мусіць увайсці аб'ект, каб лічыцца абвесткай. Пакіньце пустым, каб дазволіць любую зону." + }, + "enabled_in_config": { + "label": "Зыходны стан абвестак", + "description": "Адсочвае, ці былі абвесткі ўключаны ў зыходнай статычнай канфігурацыі." + }, + "cutoff_time": { + "label": "Час завяршэння абвесткі", + "description": "Секунд чакання пасля спынення актыўнасці, што выклікае абвесткі, перад завяршэннем абвесткі." + } + }, + "detections": { + "label": "Канфігурацыя дэтэктаванняў", + "description": "Налады таго, якія аб'екты пад адсочваннем ствараюць дэтэктаванні (не абвесткі) і як дэтэктаванні захоўваюцца.", + "enabled": { + "label": "Уключыць дэтэктаванні", + "description": "Уключыць або адключыць падзеі дэтэктавання для ўсіх камер. Можна перавызначыць для кожнай камеры." + }, + "labels": { + "label": "Меткі дэтэктаванняў", + "description": "Спіс метак аб'ектаў, якія лічацца падзеямі дэтэктавання." + }, + "required_zones": { + "label": "Патрэбныя зоны", + "description": "Зоны, у якія мусіць увайсці аб'ект, каб лічыцца дэтэктаваннем. Пакіньце пустым, каб дазволіць любую зону." + }, + "cutoff_time": { + "label": "Час завяршэння дэтэктавання", + "description": "Секунд чакання пасля спынення актыўнасці, што выклікае дэтэктаванні, перад завяршэннем дэтэктавання." + }, + "enabled_in_config": { + "label": "Зыходны стан дэтэктаванняў", + "description": "Адсочвае, ці былі дэтэктаванні ўключаны ў зыходнай статычнай канфігурацыі." + } + }, + "genai": { + "label": "Канфігурацыя GenAI", + "description": "Кіруе выкарыстаннем generative AI для стварэння апісанняў і зводак элементаў разгляду.", + "enabled": { + "label": "Уключыць апісанні GenAI", + "description": "Уключыць або адключыць створаныя GenAI апісанні і зводкі для элементаў разгляду." + }, + "alerts": { + "label": "Уключыць GenAI для абвестак", + "description": "Выкарыстоўваць GenAI для стварэння апісанняў элементаў-абвестак." + }, + "detections": { + "label": "Уключыць GenAI для дэтэктаванняў", + "description": "Выкарыстоўваць GenAI для стварэння апісанняў элементаў-дэтэктаванняў." + }, + "image_source": { + "label": "Крыніца відарысаў для разгляду", + "description": "Крыніца відарысаў, якія адпраўляюцца ў GenAI («preview» або «recordings»). «recordings» дае кадры вышэйшай якасці, але расходуе больш такенаў." + }, + "additional_concerns": { + "label": "Дадатковыя заўвагі", + "description": "Спіс дадатковых заўваг або нататак, якія GenAI мусіць улічваць пры ацэнцы актыўнасці на гэтай камеры." + }, + "debug_save_thumbnails": { + "label": "Захоўваць мініяцюры", + "description": "Захоўваць паменшаныя выявы, якія адпраўляюцца правайдару GenAI, для адладкі і разгляду." + }, + "enabled_in_config": { + "label": "Зыходны стан GenAI", + "description": "Адсочвае, ці быў разгляд праз GenAI уключаны ў зыходнай статычнай канфігурацыі." + }, + "preferred_language": { + "label": "Пажаданая мова", + "description": "Пажаданая мова, якую запытваць у правайдара GenAI для створаных адказаў." + }, + "activity_context_prompt": { + "label": "Прампт кантэксту актыўнасці", + "description": "Уласны прампт, які апісвае, якая актыўнасць падазроная, а якая не, каб даць кантэкст для зводак GenAI." + } + }, + "description": "Налады, якія кіруюць абвесткамі, дэтэктаваннямі і зводкамі разгляду GenAI для інтэрфейсу і сховішча." + }, + "semantic_search": { + "label": "Семантычны пошук", + "triggers": { + "label": "Трыгеры", + "description": "Дзеянні і ўмовы супадзення для трыгераў семантычнага пошуку гэтай камеры.", + "friendly_name": { + "label": "Зразумелая назва", + "description": "Неабавязковая зразумелая назва гэтага трыгера для інтэрфейсу." + }, + "enabled": { + "label": "Уключыць гэты трыгер", + "description": "Уключыць або адключыць гэты трыгер семантычнага пошуку." + }, + "type": { + "label": "Тып трыгера", + "description": "Тып трыгера: «thumbnail» (супадзенне па відарысе) або «description» (супадзенне па тэксце)." + }, + "data": { + "label": "Змест трыгера", + "description": "Тэкставая фраза або ID паменшанай выявы для супастаўлення з аб'ектамі пад адсочваннем." + }, + "threshold": { + "label": "Парог трыгера", + "description": "Мінімальны бал падабенства (0-1), патрэбны для спрацоўвання гэтага трыгера." + }, + "actions": { + "label": "Дзеянні трыгера", + "description": "Спіс дзеянняў пры спрацоўванні трыгера (notification, sub_label, attribute)." + } + }, + "description": "Налады семантычнага пошуку, які будуе і запытвае ўбудаванні аб'ектаў, каб знаходзіць падобныя элементы.", + "enabled": { + "label": "Уключыць семантычны пошук", + "description": "Уключыць або адключыць функцыю семантычнага пошуку." + }, + "reindex": { + "label": "Пераіндэксацыя пры запуску", + "description": "Запусціць поўную пераіндэксацыю гістарычных аб'ектаў пад адсочваннем у базу ўбудаванняў." + }, + "model": { + "label": "Мадэль семантычнага пошуку або назва правайдара GenAI", + "description": "Мадэль убудаванняў для семантычнага пошуку (напрыклад «jinav1») або назва правайдара GenAI з роляй embeddings." + }, + "model_size": { + "label": "Памер мадэлі", + "description": "Выберыце памер мадэлі: «small» працуе на CPU, «large» звычайна патрабуе GPU." + }, + "device": { + "label": "Прылада", + "description": "Гэта перавызначэнне для выбару пэўнай прылады. Падрабязней: https://onnxruntime.ai/docs/execution-providers/" + } + }, + "snapshots": { + "label": "Здымкі", + "enabled": { + "label": "Уключыць здымкі", + "description": "Уключыць або адключыць захаванне здымкаў для ўсіх камер. Можна перавызначыць для кожнай камеры." + }, + "timestamp": { + "label": "Накладанне меткі часу", + "description": "Накладаць метку часу на здымкі з API." + }, + "bounding_box": { + "label": "Накладанне абмяжавальнага прамавугольніка", + "description": "Маляваць абмяжавальныя прамавугольнікі аб'ектаў пад адсочваннем на здымках з API." + }, + "crop": { + "label": "Абразаць здымак", + "description": "Абразаць здымкі з API па абмяжавальным прамавугольніку выяўленага аб'екта." + }, + "required_zones": { + "label": "Патрэбныя зоны", + "description": "Зоны, у якія мусіць увайсці аб'ект, каб быў захаваны здымак." + }, + "height": { + "label": "Вышыня здымка", + "description": "Вышыня (у пікселях), да якой змяняюцца здымкі з API. Пакіньце пустым, каб захаваць зыходны памер." + }, + "retain": { + "label": "Захоўванне здымкаў", + "description": "Налады захоўвання здымкаў, у тым ліку прадвызначаныя дні і перавызначэнні для асобных аб'ектаў.", + "default": { + "label": "Прадвызначанае захоўванне", + "description": "Прадвызначаная колькасць дзён захоўвання здымкаў." + }, + "objects": { + "label": "Захоўванне па аб'ектах", + "description": "Перавызначэнні дзён захоўвання здымкаў для асобных аб'ектаў." + } + }, + "quality": { + "label": "Якасць здымка", + "description": "Якасць кадавання захаваных здымкаў (0-100)." + }, + "description": "Налады здымкаў аб'ектаў пад адсочваннем, створаных праз API, для ўсіх камер. Можна перавызначыць для кожнай камеры." + }, + "timestamp_style": { + "label": "Стыль меткі часу", + "position": { + "label": "Становішча меткі часу", + "description": "Становішча меткі часу на відарысе (tl/tr/bl/br)." + }, + "format": { + "label": "Фармат меткі часу", + "description": "Радок фармату даты і часу для метак часу (коды фармату datetime з Python)." + }, + "color": { + "label": "Колер меткі часу", + "description": "Значэнні RGB для тэксту меткі часу (усе значэнні 0-255).", + "red": { + "label": "Чырвоны", + "description": "Чырвоная складовая (0-255) колеру меткі часу." + }, + "green": { + "label": "Зялёны", + "description": "Зялёная складовая (0-255) колеру меткі часу." + }, + "blue": { + "label": "Сіні", + "description": "Сіняя складовая (0-255) колеру меткі часу." + } + }, + "thickness": { + "label": "Таўшчыня меткі часу", + "description": "Таўшчыня ліній тэксту меткі часу." + }, + "effect": { + "label": "Эфект меткі часу", + "description": "Візуальны эфект тэксту меткі часу (none, solid, shadow)." + }, + "description": "Параметры афармлення метак часу ў кадры для адладачнага выгляду і здымкаў." + }, + "mqtt": { + "label": "MQTT", + "description": "Налады падлучэння і публікацыі тэлеметрыі, здымкаў і падрабязнасцей падзей у брокер MQTT.", + "enabled": { + "label": "Уключыць MQTT", + "description": "Уключыць або адключыць інтэграцыю MQTT для стану, падзей і здымкаў." + }, + "host": { + "label": "Хост MQTT", + "description": "Імя хоста або IP-адрас брокера MQTT." + }, + "port": { + "label": "Порт MQTT", + "description": "Порт брокера MQTT (звычайна 1883 для звычайнага MQTT)." + }, + "topic_prefix": { + "label": "Прэфікс топіка", + "description": "Прэфікс топіка MQTT для ўсіх топікаў Frigate. Мусіць быць унікальным, калі запушчана некалькі асобнікаў." + }, + "client_id": { + "label": "ID кліента", + "description": "Ідэнтыфікатар кліента пры падлучэнні да брокера MQTT. Мусіць быць унікальным для кожнага асобніка." + }, + "stats_interval": { + "label": "Інтэрвал статыстыкі", + "description": "Інтэрвал у секундах для публікацыі статыстыкі сістэмы і камер у MQTT." + }, + "user": { + "label": "Імя карыстальніка MQTT", + "description": "Неабавязковае імя карыстальніка MQTT. Можна перадаць праз зменныя асяроддзя або сакрэты." + }, + "password": { + "label": "Пароль MQTT", + "description": "Неабавязковы пароль MQTT. Можна перадаць праз зменныя асяроддзя або сакрэты." + }, + "tls_ca_certs": { + "label": "Сертыфікаты CA для TLS", + "description": "Шлях да сертыфіката CA для TLS-злучэнняў з брокерам (для самападпісаных сертыфікатаў)." + }, + "tls_client_cert": { + "label": "Сертыфікат кліента", + "description": "Шлях да сертыфіката кліента для ўзаемнай праверкі TLS. Пры выкарыстанні кліенцкіх сертыфікатаў не задавайце імя карыстальніка і пароль." + }, + "tls_client_key": { + "label": "Ключ кліента", + "description": "Шлях да прыватнага ключа кліенцкага сертыфіката." + }, + "tls_insecure": { + "label": "Небяспечны TLS", + "description": "Дазволіць небяспечныя TLS-злучэнні, прапускаючы праверку імя хоста (не рэкамендуецца)." + }, + "qos": { + "label": "QoS MQTT", + "description": "Узровень якасці абслугоўвання для публікацый і падпісак MQTT (0, 1 або 2)." + } + }, + "notifications": { + "label": "Апавяшчэнні", + "enabled": { + "label": "Уключыць апавяшчэнні", + "description": "Уключыць або адключыць апавяшчэнні для ўсіх камер. Можна перавызначыць для кожнай камеры." + }, + "email": { + "label": "Адрас эл. пошты для апавяшчэнняў", + "description": "Адрас эл. пошты для push-апавяшчэнняў або патрэбны некаторым правайдарам апавяшчэнняў." + }, + "cooldown": { + "label": "Перыяд астывання", + "description": "Перыяд астывання (у секундах) паміж апавяшчэннямі, каб не спамліць атрымальнікаў." + }, + "enabled_in_config": { + "label": "Зыходны стан апавяшчэнняў", + "description": "Паказвае, ці былі апавяшчэнні ўключаны ў зыходнай статычнай канфігурацыі." + }, + "description": "Налады ўключэння апавяшчэнняў для ўсіх камер і кіравання імі. Можна перавызначыць для кожнай камеры." + }, + "onvif": { + "label": "ONVIF", + "description": "Налады злучэння ONVIF і аўтаадсочвання PTZ для гэтай камеры.", + "host": { + "label": "Хост ONVIF", + "description": "Хост (і неабавязковая схема) сэрвісу ONVIF для гэтай камеры." + }, + "port": { + "label": "Порт ONVIF", + "description": "Нумар порта сэрвісу ONVIF." + }, + "user": { + "label": "Імя карыстальніка ONVIF", + "description": "Імя карыстальніка для праверкі сапраўднасці ONVIF. Некаторыя прылады патрабуюць уліковы запіс адміністратара." + }, + "password": { + "label": "Пароль ONVIF", + "description": "Пароль для праверкі сапраўднасці ONVIF." + }, + "tls_insecure": { + "label": "Адключыць праверку TLS", + "description": "Прапускаць праверку TLS і адключыць digest-аўтарызацыю для ONVIF (небяспечна, толькі ў давераных сетках)." + }, + "profile": { + "label": "Профіль ONVIF", + "description": "Пэўны медыяпрофіль ONVIF для кіравання PTZ, які вызначаецца па токене або назве. Калі не зададзены, аўтаматычна выбіраецца першы профіль са слушнай канфігурацыяй PTZ." + }, + "autotracking": { + "label": "Аўтаадсочванне", + "description": "Аўтаматычна адсочваць рухомыя аб'екты і трымаць іх у цэнтры кадра з дапамогай рухаў камеры PTZ.", + "enabled": { + "label": "Уключыць аўтаадсочванне", + "description": "Уключыць або адключыць аўтаматычнае адсочванне выяўленых аб'ектаў камерай PTZ." + }, + "calibrate_on_startup": { + "label": "Каліброўка пры запуску", + "description": "Вымяраць хуткасць матораў PTZ пры запуску, каб павысіць дакладнасць адсочвання. Пасля каліброўкі Frigate абновіць канфігурацыю значэннем movement_weights." + }, + "zooming": { + "label": "Рэжым маштабавання", + "description": "Кіраванне маштабаваннем: disabled (толькі паварот і нахіл), absolute (найбольш сумяшчальны) або relative (адначасовыя паварот, нахіл і маштабаванне)." + }, + "zoom_factor": { + "label": "Каэфіцыент маштабавання", + "description": "Кіраванне ўзроўнем набліжэння да аб'ектаў пад адсочваннем. Меншыя значэнні пакідаюць больш сцэны ў кадры, большыя набліжаюць мацней, але могуць згубіць адсочванне. Значэнні ад 0,1 да 0,75." + }, + "track": { + "label": "Аб'екты пад адсочваннем", + "description": "Спіс тыпаў аб'ектаў, якія мусяць запускаць аўтаадсочванне." + }, + "required_zones": { + "label": "Патрэбныя зоны", + "description": "Аб'екты мусяць увайсці ў адну з гэтых зон, перш чым пачнецца аўтаадсочванне." + }, + "return_preset": { + "label": "Прэсет вяртання", + "description": "Назва прэсета ONVIF, наладжанага ў прашыўцы камеры, да якога вярнуцца пасля заканчэння адсочвання." + }, + "timeout": { + "label": "Тайм-аўт вяртання", + "description": "Чакаць столькі секунд пасля страты адсочвання, перш чым вярнуць камеру ў становішча прэсета." + }, + "movement_weights": { + "label": "Вагі руху", + "description": "Значэнні каліброўкі, створаныя аўтаматычна пры калібраванні камеры. Не змяняйце ўручную." + }, + "enabled_in_config": { + "label": "Зыходны стан аўтаадсочвання", + "description": "Унутранае поле, якое адсочвае, ці было аўтаадсочванне ўключана ў канфігурацыі." + } + }, + "ignore_time_mismatch": { + "label": "Ігнараваць разыходжанне часу", + "description": "Ігнараваць разыходжанне сінхранізацыі часу паміж камерай і серверам Frigate пры сувязі праз ONVIF." + } + }, + "profiles": { + "label": "Профілі", + "description": "Азначэнні найменаваных профіляў са зразумелымі назвамі. Профілі камер мусяць спасылацца на назвы, вызначаныя тут.", + "friendly_name": { + "label": "Зразумелая назва", + "description": "Назва гэтага профілю, якая паказваецца ў інтэрфейсе." + } + }, + "version": { + "label": "Бягучая версія канфігурацыі", + "description": "Лічбавая або радковая версія актыўнай канфігурацыі, каб выяўляць міграцыі або змены фармату." + }, + "safe_mode": { + "label": "Бяспечны рэжым", + "description": "Пры ўключэнні запускаць Frigate у бяспечным рэжыме са скарочанымі магчымасцямі для пошуку непаладак." + }, + "environment_vars": { + "label": "Зменныя асяроддзя", + "description": "Пары «ключ - значэнне» зменных асяроддзя для працэсу Frigate у Home Assistant OS. Па-за HAOS трэба наладжваць зменныя асяроддзя праз Docker." + }, + "logger": { + "label": "Рэгістрацыя", + "description": "Кіруе прадвызначанай падрабязнасцю журнала і перавызначэннямі ўзроўню для асобных кампанентаў.", + "default": { + "label": "Узровень журналявання", + "description": "Прадвызначаная глабальная падрабязнасць журнала (debug, info, warning, error)." + }, + "logs": { + "label": "Узровень журнала па працэсах", + "description": "Перавызначэнні ўзроўню журнала для асобных кампанентаў, каб павысіць або панізіць падрабязнасць для пэўных модуляў." + } + }, + "auth": { + "label": "Праверка сапраўднасці", + "description": "Налады праверкі сапраўднасці і сеансаў, у тым ліку параметры cookie і абмежаванні частаты.", + "enabled": { + "label": "Уключыць праверку сапраўднасці", + "description": "Уключыць убудаваную праверку сапраўднасці для інтэрфейсу Frigate." + }, + "reset_admin_password": { + "label": "Скінуць пароль адміністратара", + "description": "Калі ўключана, пры запуску скідае пароль адміністратара і друкуе новы пароль у журналах." + }, + "cookie_name": { + "label": "Назва cookie JWT", + "description": "Назва cookie, у якім захоўваецца токен JWT для ўбудаванай праверкі сапраўднасці." + }, + "cookie_secure": { + "label": "Сцяг Secure для cookie", + "description": "Задаваць сцяг secure для cookie аўтарызацыі. Мусіць быць уключаны пры выкарыстанні TLS." + }, + "session_length": { + "label": "Даўжыня сеанса", + "description": "Працягласць сеанса ў секундах для сеансаў на аснове JWT." + }, + "refresh_time": { + "label": "Акно абнаўлення сеанса", + "description": "Калі да заканчэння сеанса застаецца столькі секунд, ён абнаўляецца да поўнай даўжыні." + }, + "failed_login_rate_limit": { + "label": "Абмежаванні няўдалых уваходаў", + "description": "Правілы абмежавання частаты няўдалых спроб уваходу, каб зменшыць рызыку падбору пароля." + }, + "trusted_proxies": { + "label": "Даверныя проксі", + "description": "Спіс давераных IP проксі, якія выкарыстоўваюцца пры вызначэнні IP кліента для абмежавання частаты." + }, + "hash_iterations": { + "label": "Ітэрацыі хэшавання", + "description": "Колькасць ітэрацый PBKDF2-SHA256 пры хэшаванні пароляў карыстальнікаў." + }, + "roles": { + "label": "Супастаўленні роляў", + "description": "Супастаўленне роляў са спісамі камер. Пусты спіс дае ролі доступ да ўсіх камер." + }, + "admin_first_time_login": { + "label": "Сцяг першага ўваходу адміністратара", + "description": "Калі ўключана, інтэрфейс можа паказваць на старонцы ўваходу спасылку з даведкай, як увайсці пасля скіду пароля адміністратара. " + } + }, + "database": { + "label": "База даных", + "description": "Налады базы даных SQLite, у якой Frigate захоўвае метаданыя аб'ектаў пад адсочваннем і запісаў.", + "path": { + "label": "Шлях да базы даных", + "description": "Шлях у файлавай сістэме, дзе будзе захоўвацца файл базы даных SQLite Frigate." + } + }, + "go2rtc": { + "label": "go2rtc", + "description": "Налады ўбудаванага сэрвісу рэтрансляцыі go2rtc, які перадае і пераўтварае жывыя плыні." + }, + "networking": { + "label": "Сетка", + "description": "Сеткавыя налады, напрыклад уключэнне IPv6 для канчатковых пунктаў Frigate.", + "ipv6": { + "label": "Канфігурацыя IPv6", + "description": "Налады, характэрныя для IPv6, у сеткавых сэрвісах Frigate.", + "enabled": { + "label": "Уключыць IPv6", + "description": "Уключыць падтрымку IPv6 для сэрвісаў Frigate (API і інтэрфейс), дзе гэта дастасавальна." + } + }, + "listen": { + "label": "Канфігурацыя партоў праслухоўвання", + "description": "Канфігурацыя ўнутраных і знешніх партоў праслухоўвання. Гэта для дасведчаных карыстальнікаў. У большасці выпадкаў лепш змяніць раздзел портаў у файле Docker compose.", + "internal": { + "label": "Унутраны порт", + "description": "Унутраны порт праслухоўвання для Frigate (прадвызначана 5000)." + }, + "external": { + "label": "Знешні порт", + "description": "Знешні порт праслухоўвання для Frigate (прадвызначана 8971)." + } + } + }, + "proxy": { + "label": "Проксі", + "description": "Налады працы Frigate за адваротным проксі, які перадае загалоўкі аўтарызаванага карыстальніка.", + "header_map": { + "label": "Супастаўленне загалоўкаў", + "description": "Супастаўленне ўваходных загалоўкаў проксі з палямі карыстальніка і ролі ў Frigate для аўтарызацыі праз проксі.", + "user": { + "label": "Загаловак карыстальніка", + "description": "Загаловак з імем аўтарызаванага карыстальніка, які перадае проксі." + }, + "role": { + "label": "Загаловак ролі", + "description": "Загаловак з роляй або групамі аўтарызаванага карыстальніка, які перадае проксі." + }, + "role_map": { + "label": "Супастаўленне роляў", + "description": "Супастаўленне значэнняў груп ад проксі з ролямі Frigate (напрыклад, групы адміністратараў з роляй адміністратара)." + } + }, + "logout_url": { + "label": "URL выхаду", + "description": "URL, на які перанакіроўваць карыстальнікаў пры выхадзе праз проксі." + }, + "auth_secret": { + "label": "Сакрэт проксі", + "description": "Неабавязковы сакрэт, які правяраецца праз загаловак X-Proxy-Secret, каб пацвердзіць давераны проксі." + }, + "default_role": { + "label": "Прадвызначаная роля", + "description": "Роля, якая прызначаецца карыстальнікам, аўтарызаваным праз проксі, калі супастаўленне роляў не спрацавала." + }, + "separator": { + "label": "Сімвал-раздзяляльнік", + "description": "Сімвал для падзелу некалькіх значэнняў у загалоўках проксі." + } + }, + "telemetry": { + "label": "Тэлеметрыя", + "description": "Параметры тэлеметрыі і статыстыкі сістэмы, у тым ліку маніторынг GPU і сеткавай паласы прапускання.", + "network_interfaces": { + "label": "Сеткавыя інтэрфейсы", + "description": "Спіс прэфіксаў назваў сеткавых інтэрфейсаў для збору статыстыкі паласы прапускання." + }, + "stats": { + "label": "Статыстыка сістэмы", + "description": "Параметры ўключэння і адключэння збору рознай статыстыкі сістэмы і GPU.", + "amd_gpu_stats": { + "label": "Статыстыка GPU AMD", + "description": "Уключыць збор статыстыкі GPU AMD, калі такі GPU прысутнічае." + }, + "intel_gpu_stats": { + "label": "Статыстыка GPU Intel", + "description": "Уключыць збор статыстыкі GPU Intel, калі такі GPU прысутнічае." + }, + "network_bandwidth": { + "label": "Сеткавая паласа прапускання", + "description": "Уключыць маніторынг сеткавай паласы прапускання па працэсах для працэсаў ffmpeg камер і дэтэктараў (патрабуе адпаведных магчымасцей)." + }, + "intel_gpu_device": { + "label": "Прылада GPU Intel", + "description": "Адрас шыны PCI або шлях да прылады DRM (напрыклад /dev/dri/card1), каб прывязаць статыстыку GPU Intel да пэўнай прылады, калі іх некалькі." + } + }, + "version_check": { + "label": "Праверка версіі", + "description": "Уключыць знешнюю праверку наяўнасці навейшай версіі Frigate." + } + }, + "tls": { + "label": "TLS", + "description": "Налады TLS для вэб-канчатковых пунктаў Frigate (порт 8971).", + "enabled": { + "label": "Уключыць TLS", + "description": "Уключыць TLS для вэб-інтэрфейсу і API Frigate на наладжаным порце TLS." + } + }, + "ui": { + "label": "Інтэрфейс", + "description": "Параметры інтэрфейсу, напрыклад часавы пояс, фармат часу і даты, адзінкі вымярэння.", + "timezone": { + "label": "Часавы пояс", + "description": "Неабавязковы часавы пояс для ўсяго інтэрфейсу (прадвызначана - лакальны час браўзера)." + }, + "time_format": { + "label": "Фармат часу", + "description": "Фармат часу ў інтэрфейсе (browser, 12hour або 24hour)." + }, + "unit_system": { + "label": "Сістэма адзінак", + "description": "Сістэма адзінак для адлюстравання (metric або imperial) у інтэрфейсе і MQTT." + } + }, + "detectors": { + "label": "Абсталяванне дэтэктара", + "description": "Канфігурацыя дэтэктараў аб'ектаў (CPU, GPU, бэкенды ONNX) і любых налад мадэлі, характэрных для дэтэктара.", + "type": { + "label": "Тып" + }, + "model": { + "label": "Канфігурацыя мадэлі для дэтэктара", + "description": "Параметры канфігурацыі мадэлі, характэрныя для дэтэктара (шлях, памер уваходу і г. д.).", + "path": { + "label": "Шлях да ўласнай мадэлі дэтэктавання аб'ектаў", + "description": "Шлях да файла ўласнай мадэлі дэтэктавання (або plus:// для мадэляў Frigate+)." + }, + "labelmap_path": { + "label": "Карта метак для ўласнага дэтэктара аб'ектаў", + "description": "Шлях да файла labelmap, які супастаўляе лічбавыя класы з радковымі меткамі для дэтэктара." + }, + "width": { + "label": "Шырыня ўваходу мадэлі дэтэктавання аб'ектаў", + "description": "Шырыня ўваходнага тэнзара мадэлі ў пікселях." + }, + "height": { + "label": "Вышыня ўваходу мадэлі дэтэктавання аб'ектаў", + "description": "Вышыня ўваходнага тэнзара мадэлі ў пікселях." + }, + "labelmap": { + "label": "Наладка labelmap", + "description": "Перавызначэнні або запісы перасупастаўлення, якія аб'ядноўваюцца са стандартным labelmap." + }, + "attributes_map": { + "label": "Карта метак аб'ектаў да іх метак атрыбутаў", + "description": "Супастаўленне метак аб'ектаў з меткамі атрыбутаў для далучэння метаданых (напрыклад «car» -> [«license_plate»])." + }, + "input_tensor": { + "label": "Форма ўваходнага тэнзара мадэлі", + "description": "Фармат тэнзара, які чакае мадэль: «nhwc» або «nchw»." + }, + "input_pixel_format": { + "label": "Фармат колеру пікселяў на ўваходзе мадэлі", + "description": "Колеравая прастора, якую чакае мадэль: «rgb», «bgr» або «yuv»." + }, + "input_dtype": { + "label": "Тып даных уваходу мадэлі", + "description": "Тып даных уваходнага тэнзара мадэлі (напрыклад «float32»)." + }, + "model_type": { + "label": "Тып мадэлі дэтэктавання аб'ектаў", + "description": "Тып архітэктуры мадэлі дэтэктара (ssd, yolox, yolonas, yolo-generic, rfdetr, dfine), які некаторыя дэтэктары выкарыстоўваюць для аптымізацыі." + } + }, + "model_path": { + "label": "Шлях да мадэлі для дэтэктара", + "description": "Шлях да файла мадэлі дэтэктара, калі гэта патрабуе выбраны дэтэктар." + }, + "axengine": { + "label": "NPU AXEngine", + "description": "Дэтэктар на NPU AXERA AX650N/AX8850N, які запускае скампіляваныя файлы .axmodel праз асяроддзе AXEngine." + }, + "cpu": { + "label": "Цэнтральны працэсар", + "description": "Дэтэктар CPU TFLite, які запускае мадэлі TensorFlow Lite на CPU без апаратнага паскарэння. Не рэкамендуецца.", + "num_threads": { + "label": "Колькасць патокаў дэтэктавання", + "description": "Колькасць патокаў для вывядзення на CPU." + } + }, + "deepstack": { + "label": "DeepStack", + "description": "Дэтэктар DeepStack/CodeProject.AI, які адпраўляе відарысы на аддалены HTTP API DeepStack. Не рэкамендуецца.", + "api_url": { + "label": "URL API DeepStack", + "description": "URL API DeepStack." + }, + "api_timeout": { + "label": "Тайм-аўт API DeepStack (у секундах)", + "description": "Максімальны час, дазволены на запыт да API DeepStack." + }, + "api_key": { + "label": "Ключ API DeepStack (калі патрэбны)", + "description": "Неабавязковы ключ API для сэрвісаў DeepStack з праверкай сапраўднасці." + } + }, + "edgetpu": { + "label": "EdgeTPU", + "description": "Дэтэктар EdgeTPU, які запускае мадэлі TensorFlow Lite, скампіляваныя пад Coral EdgeTPU, праз дэлегат EdgeTPU.", + "device": { + "label": "Тып прылады", + "description": "Прылада для вывядзення на EdgeTPU (напрыклад «usb», «pci»)." + } + }, + "hailo8l": { + "label": "Hailo-8/Hailo-8L", + "description": "Дэтэктар Hailo-8/Hailo-8L, які выкарыстоўвае мадэлі HEF і SDK HailoRT для вывядзення на абсталяванні Hailo.", + "device": { + "label": "Тып прылады", + "description": "Прылада для вывядзення на Hailo (напрыклад «PCIe», «M.2»)." + } + }, + "memryx": { + "label": "MemryX", + "description": "Дэтэктар MemryX MX3, які запускае скампіляваныя мадэлі DFP на паскаральніках MemryX.", + "device": { + "label": "Шлях да прылады", + "description": "Прылада для вывядзення на MemryX (напрыклад «PCIe»)." + } + }, + "onnx": { + "label": "ONNX", + "description": "Дэтэктар ONNX для запуску мадэляў ONNX. Пры магчымасці выкарыстоўвае даступныя бэкенды паскарэння (CUDA/ROCm/OpenVINO).", + "device": { + "label": "Тып прылады", + "description": "Прылада для вывядзення на ONNX (напрыклад «AUTO», «CPU», «GPU»)." + } + }, + "openvino": { + "label": "OpenVINO", + "description": "Дэтэктар OpenVINO для CPU AMD і Intel, GPU Intel і абсталявання Intel VPU.", + "device": { + "label": "Тып прылады", + "description": "Прылада для вывядзення на OpenVINO (напрыклад «CPU», «GPU», «NPU»)." + } + }, + "rknn": { + "label": "RKNN", + "description": "Дэтэктар RKNN для NPU Rockchip. Запускае скампіляваныя мадэлі RKNN на абсталяванні Rockchip.", + "num_cores": { + "label": "Колькасць ядраў NPU для выкарыстання.", + "description": "Колькасць ядраў NPU (0 - аўтаматычна)." + } + }, + "synaptics": { + "label": "Synaptics", + "description": "Дэтэктар на NPU Synaptics для мадэляў у фармаце .synap праз Synap SDK на абсталяванні Synaptics." + }, + "teflon_tfl": { + "label": "Teflon", + "description": "Дэтэктар-дэлегат Teflon для TFLite, які выкарыстоўвае бібліятэку дэлегата Mesa Teflon, каб паскорыць вывядзенне на падтрыманых GPU." + }, + "tensorrt": { + "label": "TensorRT", + "description": "Дэтэктар TensorRT для прылад Nvidia Jetson, які выкарыстоўвае серыялізаваныя рухавікі TensorRT для паскоранага вывядзення.", + "device": { + "label": "Індэкс прылады GPU", + "description": "Індэкс прылады GPU для выкарыстання." + } + }, + "zmq": { + "label": "ZMQ IPC", + "description": "Дэтэктар ZMQ IPC, які перадае вывядзенне знешняму працэсу праз канчатковы пункт ZeroMQ IPC.", + "endpoint": { + "label": "Канчатковы пункт ZMQ IPC", + "description": "Канчатковы пункт ZMQ для падлучэння." + }, + "request_timeout_ms": { + "label": "Тайм-аўт запыту ZMQ у мілісекундах", + "description": "Тайм-аўт запытаў ZMQ у мілісекундах." + }, + "linger_ms": { + "label": "Затрымка сокета ZMQ у мілісекундах", + "description": "Перыяд затрымкі сокета ў мілісекундах." + } + } + }, + "model": { + "label": "Мадэль дэтэктавання", + "description": "Налады ўласнай мадэлі дэтэктавання аб'ектаў і формы яе ўваходу.", + "path": { + "label": "Шлях да ўласнай мадэлі дэтэктавання аб'ектаў", + "description": "Шлях да файла ўласнай мадэлі дэтэктавання (або plus:// для мадэляў Frigate+)." + }, + "labelmap_path": { + "label": "Карта метак для ўласнага дэтэктара аб'ектаў", + "description": "Шлях да файла labelmap, які супастаўляе лічбавыя класы з радковымі меткамі для дэтэктара." + }, + "width": { + "label": "Шырыня ўваходу мадэлі дэтэктавання аб'ектаў", + "description": "Шырыня ўваходнага тэнзара мадэлі ў пікселях." + }, + "height": { + "label": "Вышыня ўваходу мадэлі дэтэктавання аб'ектаў", + "description": "Вышыня ўваходнага тэнзара мадэлі ў пікселях." + }, + "labelmap": { + "label": "Наладка labelmap", + "description": "Перавызначэнні або запісы перасупастаўлення, якія аб'ядноўваюцца са стандартным labelmap." + }, + "attributes_map": { + "label": "Карта метак аб'ектаў да іх метак атрыбутаў", + "description": "Супастаўленне метак аб'ектаў з меткамі атрыбутаў для далучэння метаданых (напрыклад «car» -> [«license_plate»])." + }, + "input_tensor": { + "label": "Форма ўваходнага тэнзара мадэлі", + "description": "Фармат тэнзара, які чакае мадэль: «nhwc» або «nchw»." + }, + "input_pixel_format": { + "label": "Фармат колеру пікселяў на ўваходзе мадэлі", + "description": "Колеравая прастора, якую чакае мадэль: «rgb», «bgr» або «yuv»." + }, + "input_dtype": { + "label": "Тып даных уваходу мадэлі", + "description": "Тып даных уваходнага тэнзара мадэлі (напрыклад «float32»)." + }, + "model_type": { + "label": "Тып мадэлі дэтэктавання аб'ектаў", + "description": "Тып архітэктуры мадэлі дэтэктара (ssd, yolox, yolonas, yolo-generic, rfdetr, dfine), які некаторыя дэтэктары выкарыстоўваюць для аптымізацыі." + } + }, + "genai": { + "label": "Канфігурацыя Generative AI", + "description": "Налады інтэграваных правайдараў generative AI, якія ствараюць апісанні аб'ектаў і зводкі разгляду.", + "api_key": { + "label": "API-ключ", + "description": "Ключ API, патрэбны некаторым правайдарам (можна задаць і праз зменныя асяроддзя)." + }, + "base_url": { + "label": "Базавы URL", + "description": "Базавы URL для самастойна размешчаных або сумяшчальных правайдараў (напрыклад, асобніка Ollama)." + }, + "model": { + "label": "Мадэль", + "description": "Мадэль правайдара, якая выкарыстоўваецца для стварэння апісанняў або зводак." + }, + "provider": { + "label": "Правайдар", + "description": "Правайдар GenAI (напрыклад: ollama, gemini, openai)." + }, + "roles": { + "label": "Ролі", + "description": "Ролі GenAI (chat, descriptions, embeddings). Па адным правайдары на ролю." + }, + "provider_options": { + "label": "Параметры правайдара", + "description": "Дадатковыя параметры правайдара, якія перадаюцца кліенту GenAI." + }, + "runtime_options": { + "label": "Параметры выканання", + "description": "Параметры выканання, якія перадаюцца правайдару пры кожным выкліку вывядзення." + } + }, + "classification": { + "label": "Класіфікацыя аб'ектаў", + "description": "Налады мадэляў класіфікацыі, якія ўдакладняюць меткі аб'ектаў або класіфікуюць стан.", + "bird": { + "label": "Канфігурацыя класіфікацыі птушак", + "description": "Налады, характэрныя для мадэляў класіфікацыі птушак.", + "enabled": { + "label": "Класіфікацыя птушак", + "description": "Уключыць або адключыць класіфікацыю птушак." + }, + "threshold": { + "label": "Мін. бал", + "description": "Мінімальны бал класіфікацыі, патрэбны, каб прыняць класіфікацыю птушкі." + } + }, + "custom": { + "label": "Уласныя мадэлі класіфікацыі", + "description": "Канфігурацыя ўласных мадэляў класіфікацыі для аб'ектаў або дэтэктавання стану.", + "enabled": { + "label": "Уключыць мадэль", + "description": "Уключыць або адключыць уласную мадэль класіфікацыі." + }, + "name": { + "label": "Назва мадэлі", + "description": "Ідэнтыфікатар уласнай мадэлі класіфікацыі." + }, + "threshold": { + "label": "Парог бала", + "description": "Парог бала, пры якім змяняецца стан класіфікацыі." + }, + "save_attempts": { + "label": "Захоўваць спробы", + "description": "Колькі спроб класіфікацыі захоўваць для інтэрфейсу апошніх класіфікацый." + }, + "object_config": { + "objects": { + "label": "Класіфікаваць аб'екты", + "description": "Спіс тыпаў аб'ектаў, для якіх запускаецца класіфікацыя аб'ектаў." + }, + "classification_type": { + "label": "Тып класіфікацыі", + "description": "Прыменены тып класіфікацыі: «sub_label» (дадае sub_label) або іншыя падтрыманыя тыпы." + } + }, + "state_config": { + "cameras": { + "label": "Камеры класіфікацыі", + "description": "Абрэзка і налады для кожнай камеры пры запуску класіфікацыі стану.", + "crop": { + "label": "Абрэзка для класіфікацыі", + "description": "Каардынаты абрэзкі для запуску класіфікацыі на гэтай камеры." + } + }, + "motion": { + "label": "Запускаць пры руху", + "description": "Калі ўключана, запускаць класіфікацыю пры выяўленні руху ў зададзенай абрэзцы." + }, + "interval": { + "label": "Інтэрвал класіфікацыі", + "description": "Інтэрвал (у секундах) паміж перыядычнымі запускамі класіфікацыі стану." + } + } + } + }, + "camera_groups": { + "label": "Групы камер", + "description": "Канфігурацыя найменаваных груп камер, якія ўпарадкоўваюць камеры ў інтэрфейсе.", + "cameras": { + "label": "Спіс камер", + "description": "Масіў назваў камер, якія ўваходзяць у гэтую групу." + }, + "icon": { + "label": "Значок групы", + "description": "Значок, які абазначае групу камер у інтэрфейсе." + }, + "order": { + "label": "Парадак сартавання", + "description": "Лічбавы парадак сартавання груп камер у інтэрфейсе. Большыя лікі ідуць пазней." + } + }, + "active_profile": { + "label": "Актыўны профіль", + "description": "Назва актыўнага профілю. Толькі падчас працы, у YAML не захоўваецца." + }, + "camera_mqtt": { + "label": "MQTT", + "description": "Налады публікацыі відарысаў у MQTT.", + "enabled": { + "label": "Адпраўляць відарыс", + "description": "Уключыць публікацыю здымкаў аб'ектаў у топікі MQTT для гэтай камеры." + }, + "timestamp": { + "label": "Дадаць метку часу", + "description": "Накладаць метку часу на відарысы, якія публікуюцца ў MQTT." + }, + "bounding_box": { + "label": "Дадаць абмяжавальны прамавугольнік", + "description": "Маляваць абмяжавальныя прамавугольнікі на відарысах, якія публікуюцца праз MQTT." + }, + "crop": { + "label": "Абразаць відарыс", + "description": "Абразаць відарысы, якія публікуюцца ў MQTT, па абмяжавальным прамавугольніку выяўленага аб'екта." + }, + "height": { + "label": "Вышыня відарыса", + "description": "Вышыня (у пікселях), да якой змяняюцца відарысы, што публікуюцца праз MQTT." + }, + "required_zones": { + "label": "Патрэбныя зоны", + "description": "Зоны, у якія мусіць увайсці аб'ект, каб відарыс быў апублікаваны ў MQTT." + }, + "quality": { + "label": "Якасць JPEG", + "description": "Якасць JPEG для відарысаў, якія публікуюцца ў MQTT (0-100)." + } + }, + "camera_ui": { + "label": "Інтэрфейс камеры", + "description": "Парадак адлюстравання і бачнасць гэтай камеры ў інтэрфейсе. Парадак уплывае на прадвызначаную панэль. Для больш дакладнага кіравання карыстайцеся групамі камер.", + "order": { + "label": "Парадак у інтэрфейсе", + "description": "Лічбавы парадак сартавання камеры ў інтэрфейсе (прадвызначаная панэль і спісы). Большыя лікі ідуць пазней." + }, + "dashboard": { + "label": "Паказваць на панэлі жывога прагляду", + "description": "Ці бачная гэта камера на прадвызначанай панэлі «Усе камеры». Камера застаецца даступнай усюды ў інтэрфейсе, у тым ліку ў групах камер і наладах." + }, + "review": { + "label": "Паказваць у разглядзе", + "description": "Ці бачная гэта камера ў разглядзе (старонка разгляду і яе фільтр камер, разгляд руху і выгляд гісторыі)." + } + } +} diff --git a/web/public/locales/be/config/groups.json b/web/public/locales/be/config/groups.json new file mode 100644 index 0000000000..52c746e053 --- /dev/null +++ b/web/public/locales/be/config/groups.json @@ -0,0 +1,73 @@ +{ + "audio": { + "global": { + "detection": "Глабальнае дэтэктаванне", + "sensitivity": "Глабальная адчувальнасць" + }, + "cameras": { + "detection": "Дэтэктаванне", + "sensitivity": "Адчувальнасць" + } + }, + "timestamp_style": { + "global": { + "appearance": "Глабальны выгляд" + }, + "cameras": { + "appearance": "Выгляд" + } + }, + "motion": { + "global": { + "sensitivity": "Глабальная адчувальнасць", + "algorithm": "Глабальны алгарытм" + }, + "cameras": { + "sensitivity": "Адчувальнасць", + "algorithm": "Алгарытм" + } + }, + "snapshots": { + "global": { + "display": "Глабальнае адлюстраванне" + }, + "cameras": { + "display": "Дысплэй" + } + }, + "detect": { + "global": { + "resolution": "Глабальнае разрозненне", + "tracking": "Глабальнае адсочванне" + }, + "cameras": { + "resolution": "Разрозненне", + "tracking": "Адсочванне" + } + }, + "objects": { + "global": { + "tracking": "Глабальнае адсочванне", + "filtering": "Глабальная фільтрацыя" + }, + "cameras": { + "tracking": "Адсочванне", + "filtering": "Фільтрацыя" + } + }, + "record": { + "global": { + "retention": "Глабальнае захоўванне", + "events": "Глабальныя падзеі" + }, + "cameras": { + "retention": "Захоўванне", + "events": "Падзеі" + } + }, + "ffmpeg": { + "cameras": { + "cameraFfmpeg": "Аргументы FFmpeg для гэтай камеры" + } + } +} diff --git a/web/public/locales/be/config/validation.json b/web/public/locales/be/config/validation.json new file mode 100644 index 0000000000..27fa560953 --- /dev/null +++ b/web/public/locales/be/config/validation.json @@ -0,0 +1,35 @@ +{ + "minimum": "Мусіць быць не меней за {{limit}}", + "maximum": "Мусіць быць не болей за {{limit}}", + "exclusiveMinimum": "Мусіць быць больш за {{limit}}", + "exclusiveMaximum": "Мусіць быць менш за {{limit}}", + "minLength": "Сімвалаў мусіць быць не меней за {{limit}}", + "maxLength": "Сімвалаў мусіць быць не болей за {{limit}}", + "minItems": "Элементаў мусіць быць не меней за {{limit}}", + "maxItems": "Элементаў мусіць быць не болей за {{limit}}", + "pattern": "Памылковы фармат", + "required": "Гэта поле абавязковае", + "type": "Памылковы тып значэння", + "enum": "Мусіць быць адным з дазволеных значэнняў", + "const": "Значэнне не супадае з чаканай канстантай", + "uniqueItems": "Усе элементы мусяць быць унікальнымі", + "format": "Памылковы фармат", + "additionalProperties": "Невядомая ўласцівасць не дазваляецца", + "oneOf": "Мусіць адпавядаць роўна адной з дазволеных схем", + "anyOf": "Мусіць адпавядаць хаця б адной з дазволеных схем", + "proxy": { + "header_map": { + "roleHeaderRequired": "Калі наладжаны супастаўленні роляў, патрабуецца загаловак ролі." + } + }, + "ffmpeg": { + "inputs": { + "rolesUnique": "Кожную ролю можна прызначыць толькі аднаму ўваходнай плыні.", + "detectRequired": "Хаця б аднаму ўваходнай плыні мусіць быць прызначана роля «detect».", + "hwaccelDetectOnly": "Аргументы апаратнага паскарэння можа задаваць толькі ўваходная плынь з роляй «detect»." + } + }, + "detect": { + "dimensionMustBeEven": "Мусіць быць цотным лікам." + } +} diff --git a/web/public/locales/be/objects.json b/web/public/locales/be/objects.json new file mode 100644 index 0000000000..7f86ebce83 --- /dev/null +++ b/web/public/locales/be/objects.json @@ -0,0 +1,131 @@ +{ + "animal": "Жывёла", + "dog": "Сабака", + "bark": "Брэх", + "cat": "Кот", + "horse": "Конь", + "goat": "Каза", + "sheep": "Авечка", + "bird": "Птушка", + "mouse": "Мыш", + "keyboard": "Клавіятура", + "vehicle": "Транспартны Сродак", + "boat": "Лодка", + "car": "Аўтамабіль", + "bus": "Аўтобус", + "motorcycle": "Матацыкл", + "train": "Цягнік", + "bicycle": "Веласіпед", + "skateboard": "Скейтборд", + "door": "Дзверы", + "blender": "Блендэр", + "sink": "Ракавіна", + "hair_dryer": "Фен", + "toothbrush": "Зубная Шчотка", + "scissors": "Нажніцы", + "clock": "Гадзіннік", + "person": "Чалавек", + "airplane": "Самалёт", + "traffic_light": "Святлафор", + "fire_hydrant": "Пажарны Гідрант", + "street_sign": "Дарожны Знак", + "stop_sign": "Знак «Стоп»", + "parking_meter": "Паркамат", + "bench": "Лаўка", + "cow": "Карова", + "elephant": "Слон", + "bear": "Мядзведзь", + "zebra": "Зебра", + "giraffe": "Жырафа", + "hat": "Капялюш", + "backpack": "Заплечнік", + "umbrella": "Парасон", + "shoe": "Чаравік", + "eye_glasses": "Акуляры", + "handbag": "Сумка", + "tie": "Гальштук", + "suitcase": "Чамадан", + "frisbee": "Фрысбі", + "skis": "Лыжы", + "snowboard": "Сноўборд", + "sports_ball": "Спартыўны Мяч", + "kite": "Паветраны Змей", + "baseball_bat": "Бейсбольная Біта", + "baseball_glove": "Бейсбольная Рукавіца", + "surfboard": "Дошка для Сёрфінгу", + "tennis_racket": "Тэнісная Ракетка", + "bottle": "Бутэлька", + "plate": "Талерка", + "wine_glass": "Бакал", + "cup": "Кубак", + "fork": "Відэлец", + "knife": "Нож", + "spoon": "Лыжка", + "bowl": "Чаша", + "banana": "Банан", + "apple": "Яблык", + "sandwich": "Сэндвіч", + "orange": "Апельсін", + "broccoli": "Брокалі", + "carrot": "Морква", + "hot_dog": "Хот-Дог", + "pizza": "Піцца", + "donut": "Пончык", + "cake": "Торт", + "chair": "Крэсла", + "couch": "Канапа", + "potted_plant": "Расліна ў Гаршку", + "bed": "Ложак", + "mirror": "Люстэрка", + "dining_table": "Абедзены Стол", + "window": "Акно", + "desk": "Пісьмовы Стол", + "toilet": "Туалет", + "tv": "Тэлевізар", + "laptop": "Ноўтбук", + "remote": "Пульт", + "cell_phone": "Мабільны Тэлефон", + "microwave": "Мікрахвалевая Печ", + "oven": "Печ", + "toaster": "Тостар", + "refrigerator": "Халадзільнік", + "book": "Кніга", + "vase": "Ваза", + "teddy_bear": "Мядзведзік", + "hair_brush": "Шчотка для Валасоў", + "squirrel": "Вавёрка", + "deer": "Алень", + "fox": "Ліс", + "rabbit": "Заяц", + "raccoon": "Янот", + "robot_lawnmower": "Робат-Газонакасілка", + "waste_bin": "Сметніца", + "on_demand": "Па Запатрабаванні", + "face": "Твар", + "license_plate": "Нумарны Знак", + "package": "Пасылка", + "bbq_grill": "Грыль", + "amazon": "Amazon", + "usps": "USPS", + "ups": "UPS", + "fedex": "FedEx", + "dhl": "DHL", + "an_post": "An Post", + "purolator": "Purolator", + "postnl": "PostNL", + "nzpost": "NZPost", + "postnord": "PostNord", + "gls": "GLS", + "dpd": "DPD", + "canada_post": "Canada Post", + "royal_mail": "Royal Mail", + "school_bus": "Школьны Аўтобус", + "skunk": "Скунс", + "kangaroo": "Кенгуру", + "baby": "Немаўля", + "baby_stroller": "Дзіцячы Вазок", + "rickshaw": "Рыкша", + "rodent": "Грызун", + "possum": "Апосум", + "garbage_truck": "Смеццявоз" +} diff --git a/web/public/locales/be/views/chat.json b/web/public/locales/be/views/chat.json new file mode 100644 index 0000000000..3cca25d325 --- /dev/null +++ b/web/public/locales/be/views/chat.json @@ -0,0 +1,72 @@ +{ + "documentTitle": "Чат - Frigate", + "title": "Чат Frigate", + "subtitle": "Ваш памочнік ШІ для кіравання камерамі і аналізу", + "placeholder": "Спытайце што заўгодна…", + "error": "Нешта пайшло не так. Паспрабуйце зноў.", + "processing": "Апрацоўка…", + "toolsUsed": "Скарыстана: {{tools}}", + "showTools": "Паказаць інструменты ({{count}})", + "hideTools": "Схаваць інструменты", + "call": "Выклік", + "result": "Вынік", + "arguments": "Аргументы:", + "response": "Адказ:", + "attachment_chip_label": "{{label}} на {{camera}}", + "attachment_chip_remove": "Прыбраць укладанне", + "open_in_explore": "Адкрыць у аглядзе", + "attach_event_aria": "Прымацаваць падзею {{eventId}}", + "attachment_picker_paste_label": "Або ўстаўце ID падзеі", + "attachment_picker_attach": "Прымацаваць", + "attachment_picker_placeholder": "Прымацуйце падзею", + "quick_reply_find_similar": "Знайсці падобныя выпадкі", + "quick_reply_tell_me_more": "Раскажы падрабязней", + "quick_reply_when_else": "Калі яшчэ гэта бачылі?", + "quick_reply_find_similar_text": "Знайдзі выпадкі, падобныя да гэтага.", + "quick_reply_tell_me_more_text": "Раскажы падрабязней пра гэты.", + "quick_reply_when_else_text": "Калі яшчэ гэта бачылі?", + "anchor": "Спасылка", + "similarity_score": "Падабенства", + "no_similar_objects_found": "Падобных аб'ектаў не знойдзена.", + "semantic_search_required": "Каб шукаць падобныя аб'екты, трэба ўключыць семантычны пошук.", + "send": "Адправіць", + "suggested_requests": "Паспрабуйце спытаць:", + "starting_requests": { + "show_recent_events": "Паказаць апошнія падзеі", + "show_camera_status": "Паказаць стан камер", + "recap": "Што адбылося, пакуль мяне не было?", + "watch_camera": "Сачыць за камерай" + }, + "starting_requests_prompts": { + "show_recent_events": "Пакажы падзеі за апошнюю гадзіну", + "show_camera_status": "Які зараз стан маіх камер?", + "recap": "Што адбылося, пакуль мяне не было?", + "watch_camera": "Сачы за ўваходнымі дзвярыма і паведам, калі хтосьці з'явіцца" + }, + "new_chat": "Новы чат", + "settings": { + "title": "Налады чата", + "show_stats": { + "title": "Паказваць статыстыку", + "desc": "Паказваць хуткасць генерацыі і памер кантэксту для адказаў чата.", + "while_generating": "Пры генерацыі", + "always": "Заўсёды" + }, + "auto_scroll": { + "title": "Аўтапракрутка", + "desc": "Сачыць за новымі паведамленнямі па меры паступлення." + } + }, + "stats": { + "context": "такенаў: {{tokens}}", + "tokens_per_second": "{{rate}} т/с" + }, + "reasoning": { + "active": "Разважанне…", + "show": "Паказаць разважанне", + "hide": "Схаваць разважанне" + }, + "thinking": { + "toggle": "Пераключыць разважанне" + } +} diff --git a/web/public/locales/be/views/classificationModel.json b/web/public/locales/be/views/classificationModel.json new file mode 100644 index 0000000000..46918f8730 --- /dev/null +++ b/web/public/locales/be/views/classificationModel.json @@ -0,0 +1,219 @@ +{ + "description": { + "invalidName": "Памылковая назва. Назвы могуць утрымліваць толькі літары, лічбы, прабелы, апострафы, падкрэсліванні і злучкі." + }, + "details": { + "unknown": "Невядома", + "scoreInfo": "Бал - гэта сярэдняя пэўнасць класіфікацыі па ўсіх дэтэктаваннях гэтага аб'екта.", + "none": "Няма" + }, + "train": { + "titleShort": "Апошнія", + "title": "Апошнія класіфікацыі", + "aria": "Выбраць апошнія класіфікацыі" + }, + "documentTitle": "Мадэлі класіфікацыі - Frigate", + "disabled": "Адключана", + "button": { + "deleteClassificationAttempts": "Выдаліць відарысы класіфікацыі", + "renameCategory": "Перайменаваць клас", + "deleteCategory": "Выдаліць клас", + "deleteImages": "Выдаліць відарысы", + "trainModel": "Навучыць мадэль", + "addClassification": "Дадаць класіфікацыю", + "deleteModels": "Выдаліць мадэлі", + "editModel": "Рэдагаваць мадэль" + }, + "tooltip": { + "trainingInProgress": "Мадэль зараз навучаецца", + "noNewImages": "Няма новых відарысаў для навучання. Спачатку класіфікуйце больш відарысаў у наборы даных.", + "noChanges": "З апошняга навучання набор даных не змяніўся.", + "modelNotReady": "Мадэль не гатова да навучання" + }, + "toast": { + "success": { + "deletedModel_one": "Выдалена {{count}} мадэль", + "deletedModel_few": "Выдалена {{count}} мадэлі", + "deletedModel_many": "Выдалена {{count}} мадэляў", + "categorizedImage": "Відарыс класіфікаваны", + "reclassifiedImage": "Відарыс перакласіфікаваны", + "trainedModel": "Мадэль навучана.", + "trainingModel": "Навучанне мадэлі пачата.", + "updatedModel": "Канфігурацыя мадэлі абноўлена", + "renamedCategory": "Клас перайменаваны на {{name}}", + "deletedCategory_one": "Выдалены {{count}} клас", + "deletedCategory_few": "Выдалена {{count}} класы", + "deletedCategory_many": "Выдалена {{count}} класаў", + "deletedImage_one": "Выдалены {{count}} відарыс", + "deletedImage_few": "Выдалена {{count}} відарысы", + "deletedImage_many": "Выдалена {{count}} відарысаў" + }, + "error": { + "deleteImageFailed": "Не ўдалося выдаліць: {{errorMessage}}", + "deleteCategoryFailed": "Не ўдалося выдаліць клас: {{errorMessage}}", + "deleteModelFailed": "Не ўдалося выдаліць мадэль: {{errorMessage}}", + "categorizeFailed": "Не ўдалося класіфікаваць відарыс: {{errorMessage}}", + "trainingFailed": "Навучанне мадэлі не ўдалося. Падрабязнасці ў журналах Frigate.", + "trainingFailedToStart": "Не ўдалося пачаць навучанне мадэлі: {{errorMessage}}", + "updateModelFailed": "Не ўдалося абнавіць мадэль: {{errorMessage}}", + "renameCategoryFailed": "Не ўдалося перайменаваць клас: {{errorMessage}}", + "reclassifyFailed": "Не ўдалося перакласіфікаваць відарыс: {{errorMessage}}" + } + }, + "deleteCategory": { + "title": "Выдаліць клас", + "desc": "Сапраўды выдаліць клас {{name}}? Гэта назаўсёды выдаліць усе звязаныя відарысы і запатрабуе паўторнага навучання мадэлі.", + "minClassesTitle": "Нельга выдаліць клас", + "minClassesDesc": "Мадэль класіфікацыі мусіць мець не меней за 2 класы. Дадайце іншы клас, перш чым выдаляць гэты." + }, + "deleteModel": { + "title": "Выдаліць мадэль класіфікацыі", + "single": "Сапраўды выдаліць {{name}}? Гэта назаўсёды выдаліць усе звязаныя даныя, у тым ліку відарысы і даныя навучання. Гэтае дзеянне нельга адрабіць.", + "desc_one": "Сапраўды выдаліць {{count}} мадэль? Гэта назаўсёды выдаліць усе звязаныя даныя, у тым ліку відарысы і даныя навучання. Гэтае дзеянне нельга адрабіць.", + "desc_few": "Сапраўды выдаліць {{count}} мадэлі? Гэта назаўсёды выдаліць усе звязаныя даныя, у тым ліку відарысы і даныя навучання. Гэтае дзеянне нельга адрабіць.", + "desc_many": "Сапраўды выдаліць {{count}} мадэляў? Гэта назаўсёды выдаліць усе звязаныя даныя, у тым ліку відарысы і даныя навучання. Гэтае дзеянне нельга адрабіць." + }, + "edit": { + "title": "Рэдагаваць мадэль класіфікацыі", + "descriptionState": "Змяніце класы гэтай мадэлі класіфікацыі стану. Змены запатрабуюць паўторнага навучання мадэлі.", + "descriptionObject": "Змяніце тып аб'екта і тып класіфікацыі для гэтай мадэлі класіфікацыі аб'ектаў.", + "enabled": "Уключана", + "enabledDesc": "Запускаць гэтую мадэль. Пры адключэнні яна спыняецца і больш не класіфікуе.", + "saveAttempts": "Захоўваць спробы", + "saveAttemptsDesc": "Колькасць відарысаў спроб класіфікацыі, якія захоўваюцца для інтэрфейсу апошніх класіфікацый.", + "motion": "Запускаць пры руху", + "motionDesc": "Запускаць класіфікацыю, калі ў наладжанай абрэзцы выяўлены рух.", + "interval": "Інтэрвал", + "intervalDesc": "Секунд паміж перыядычнымі запускамі класіфікацыі. Пакіньце пустым, каб запускаць толькі пры руху.", + "intervalPlaceholder": "Без інтэрвалу", + "stateClassesInfo": "Мадэль абноўлена. Каб змены класаў уступілі ў сілу, навучыце мадэль нанова.", + "errors": { + "saveAttemptsInvalid": "Колькасць спроб мусіць быць цэлым лікам 0 або больш", + "intervalInvalid": "Інтэрвал мусіць быць цэлым лікам больш за 0" + } + }, + "deleteDatasetImages": { + "title": "Выдаліць відарысы набору даных", + "desc_one": "Сапраўды выдаліць {{count}} відарыс з {{dataset}}? Гэтае дзеянне нельга адрабіць, і яно запатрабуе паўторнага навучання мадэлі.", + "desc_few": "Сапраўды выдаліць {{count}} відарысы з {{dataset}}? Гэтае дзеянне нельга адрабіць, і яно запатрабуе паўторнага навучання мадэлі.", + "desc_many": "Сапраўды выдаліць {{count}} відарысаў з {{dataset}}? Гэтае дзеянне нельга адрабіць, і яно запатрабуе паўторнага навучання мадэлі." + }, + "deleteTrainImages": { + "title": "Выдаліць відарысы навучання", + "desc_one": "Сапраўды выдаліць {{count}} відарыс? Гэтае дзеянне нельга адрабіць.", + "desc_few": "Сапраўды выдаліць {{count}} відарысы? Гэтае дзеянне нельга адрабіць.", + "desc_many": "Сапраўды выдаліць {{count}} відарысаў? Гэтае дзеянне нельга адрабіць." + }, + "renameCategory": { + "title": "Перайменаваць клас", + "desc": "Увядзіце новую назву для {{name}}. Каб змена назвы ўступіла ў сілу, трэба будзе навучыць мадэль нанова." + }, + "categories": "Класы", + "createCategory": { + "new": "Стварыць новы клас" + }, + "categorizeImageAs": "Класіфікаваць відарыс як:", + "categorizeImage": "Класіфікаваць відарыс", + "reclassifyImageAs": "Перакласіфікаваць відарыс як:", + "reclassifyImage": "Перакласіфікаваць відарыс", + "menu": { + "objects": "Аб'екты", + "states": "Станы" + }, + "noModels": { + "object": { + "title": "Няма мадэляў класіфікацыі аб'ектаў", + "description": "Стварыце ўласную мадэль, каб класіфікаваць выяўленыя аб'екты.", + "buttonText": "Стварыць мадэль аб'ектаў" + }, + "state": { + "title": "Няма мадэляў класіфікацыі стану", + "description": "Стварыце ўласную мадэль, каб сачыць за зменамі стану ў пэўных вобласцях камеры і класіфікаваць іх.", + "buttonText": "Стварыць мадэль стану" + } + }, + "wizard": { + "title": "Стварыць новую класіфікацыю", + "steps": { + "nameAndDefine": "Назва і вызначэнне", + "stateArea": "Вобласць стану", + "chooseExamples": "Выбар прыкладаў" + }, + "step1": { + "description": "Мадэлі стану сочаць за зменамі ў нерухомых вобласцях камеры (напрыклад, дзверы адчынены або зачынены). Мадэлі аб'ектаў дадаюць класіфікацыі да выяўленых аб'ектаў (напрыклад, знаёмыя жывёлы, кур'еры і г. д.).", + "name": "Назва", + "namePlaceholder": "Увядзіце назву мадэлі…", + "type": "Тып", + "typeState": "Стан", + "typeObject": "Аб'ект", + "objectLabel": "Метка аб'екта", + "objectLabelPlaceholder": "Выберыце тып аб'екта…", + "classificationType": "Тып класіфікацыі", + "classificationTypeTip": "Даведацца пра тыпы класіфікацыі", + "classificationTypeDesc": "Падметкі дадаюць дадатковы тэкст да меткі аб'екта (напрыклад «Чалавек: UPS»). Атрыбуты - гэта метаданыя з магчымасцю пошуку, якія захоўваюцца асобна ў метаданых аб'екта.", + "classificationSubLabel": "Падметка", + "classificationAttribute": "Атрыбут", + "classes": "Класы", + "states": "Станы", + "classesTip": "Даведацца пра класы", + "classesStateDesc": "Вызначце розныя станы, у якіх можа быць вобласць камеры. Напрыклад: «адчынена» і «зачынена» для гаражных дзвярэй.", + "classesObjectDesc": "Вызначце розныя катэгорыі, па якіх класіфікаваць выяўленыя аб'екты. Напрыклад: «кур'ер», «жыхар», «незнаёмец» для класіфікацыі людзей.", + "classPlaceholder": "Увядзіце назву класа…", + "errors": { + "nameRequired": "Патрабуецца назва мадэлі", + "nameLength": "Назва мадэлі мусіць мець не болей за 64 сімвалы", + "nameOnlyNumbers": "Назва мадэлі не можа складацца толькі з лічбаў", + "classRequired": "Патрабуецца прынамсі 1 клас", + "classesUnique": "Назвы класаў мусяць быць унікальнымі", + "noneNotAllowed": "Клас «none» не дазваляецца", + "stateRequiresTwoClasses": "Мадэлі стану патрабуюць не меней за 2 класы", + "objectLabelRequired": "Выберыце метку аб'екта", + "objectTypeRequired": "Выберыце тып класіфікацыі" + } + }, + "step2": { + "description": "Выберыце камеры і вызначце вобласць назірання для кожнай. Мадэль будзе класіфікаваць стан гэтых вобласцей.", + "cameras": "Камеры", + "selectCamera": "Выберыце камеру", + "noCameras": "Націсніце +, каб дадаць камеры", + "selectCameraPrompt": "Выберыце камеру са спіса, каб вызначыць яе вобласць назірання" + }, + "step3": { + "selectImagesPrompt": "Выберыце ўсе відарысы з: {{className}}", + "selectImagesDescription": "Націскайце на відарысы, каб выбраць іх. Націсніце «Працягнуць», калі скончыце з гэтым класам.", + "allImagesRequired_one": "Класіфікуйце ўсе відарысы. Засталося {{count}} відарыс.", + "allImagesRequired_few": "Класіфікуйце ўсе відарысы. Засталося {{count}} відарысы.", + "allImagesRequired_many": "Класіфікуйце ўсе відарысы. Засталося {{count}} відарысаў.", + "generating": { + "title": "Стварэнне прыкладаў відарысаў", + "description": "Frigate падбірае прадстаўнічыя відарысы з вашых запісаў. Гэта можа заняць момант…" + }, + "training": { + "title": "Навучанне мадэлі", + "description": "Ваша мадэль навучаецца ў фоне. Закрыйце гэтае акно, і мадэль запусціцца, як толькі навучанне завершыцца." + }, + "retryGenerate": "Паўтарыць стварэнне", + "noImages": "Прыклады відарысаў не створаны", + "classifying": "Класіфікацыя і навучанне…", + "trainingStarted": "Навучанне пачата", + "modelCreated": "Мадэль створана. Скарыстайцеся выглядам «Апошнія класіфікацыі», каб дадаць відарысы для адсутных станаў, а потым навучыце мадэль.", + "errors": { + "noCameras": "Камеры не наладжаны", + "noObjectLabel": "Метка аб'екта не выбрана", + "generateFailed": "Не ўдалося стварыць прыклады: {{error}}", + "generationFailed": "Стварэнне не ўдалося. Паспрабуйце зноў.", + "classifyFailed": "Не ўдалося класіфікаваць відарысы: {{error}}" + }, + "generateSuccess": "Прыклады відарысаў створаны", + "refreshExamples": "Стварыць новыя прыклады", + "refreshConfirm": { + "title": "Стварыць новыя прыклады?", + "description": "Гэта створыць новы набор відарысаў і зніме ўвесь выбар, у тым ліку па папярэдніх класах. Прыклады давядзецца выбраць нанова для ўсіх класаў." + }, + "missingStatesWarning": { + "title": "Не хапае прыкладаў класаў", + "description": "Не ўсе класы маюць прыклады. Паспрабуйце стварыць новыя прыклады, каб знайсці адсутны клас, або працягніце і дадайце відарысы пазней праз выгляд «Апошнія класіфікацыі»." + } + } + } +} diff --git a/web/public/locales/be/views/configEditor.json b/web/public/locales/be/views/configEditor.json new file mode 100644 index 0000000000..2122a082ae --- /dev/null +++ b/web/public/locales/be/views/configEditor.json @@ -0,0 +1,18 @@ +{ + "documentTitle": "Рэдактар канфігурацыі - Frigate", + "configEditor": "Рэдактар канфігурацыі", + "safeConfigEditor": "Рэдактар канфігурацыі (бяспечны рэжым)", + "safeModeDescription": "Frigate працуе ў бяспечным рэжыме праз памылку праверкі канфігурацыі.", + "copyConfig": "Скапіяваць канфігурацыю", + "saveAndRestart": "Захаваць і перазапусціць", + "saveOnly": "Толькі захаваць", + "confirm": "Выйсці без захавання?", + "toast": { + "success": { + "copyToClipboard": "Канфігурацыя скапіявана ў буфер абмену." + }, + "error": { + "savingError": "Памылка захавання канфігурацыі" + } + } +} diff --git a/web/public/locales/be/views/events.json b/web/public/locales/be/views/events.json new file mode 100644 index 0000000000..7e8a475fc5 --- /dev/null +++ b/web/public/locales/be/views/events.json @@ -0,0 +1,95 @@ +{ + "camera": "Камера", + "selected_one": "Выбрана: {{count}}", + "selected_other": "Выбрана: {{count}}", + "alerts": "Абвесткі", + "detections": "Дэтэктаванні", + "motion": { + "label": "Рух", + "only": "Толькі рух" + }, + "allCameras": "Усе камеры", + "empty": { + "alert": "Няма абвестак для разгляду", + "detection": "Няма дэтэктаванняў для разгляду", + "motion": "Даных пра рух не знойдзена", + "recordingsDisabled": { + "title": "Патрабуецца ўключыць запіс", + "description": "Элементы разгляду ствараюцца для камеры толькі тады, калі для яе ўключаны запіс." + } + }, + "timeline": { + "label": "Шкала часу", + "aria": "Выбраць шкалу часу" + }, + "zoomIn": "Наблізіць", + "zoomOut": "Аддаліць", + "events": { + "label": "Падзеі", + "aria": "Выбраць падзеі", + "noFoundForTimePeriod": "За гэты перыяд падзей не знойдзена." + }, + "detail": { + "label": "Падрабязна", + "noDataFound": "Няма падрабязных даных для разгляду", + "aria": "Пераключыць падрабязны выгляд", + "trackedObject_one": "{{count}} аб'ект", + "trackedObject_other": "{{count}} аб'екта", + "noObjectDetailData": "Падрабязных даных пра аб'ект няма.", + "settings": "Налады падрабязнага выгляду", + "alwaysExpandActive": { + "title": "Заўсёды разгортваць актыўны", + "desc": "Заўсёды разгортваць падрабязнасці пра аб'екты актыўнага элемента разгляду, калі яны ёсць." + } + }, + "objectTrack": { + "trackedPoint": "Пункт адсочвання", + "clickToSeek": "Націсніце, каб перайсці на гэты час" + }, + "documentTitle": "Разгляд - Frigate", + "recordings": { + "documentTitle": "Запісы - Frigate", + "invalidSharedLink": "Не ўдалося адкрыць спасылку на запіс з меткай часу праз памылку разбору.", + "invalidSharedCamera": "Не ўдалося адкрыць спасылку на запіс з меткай часу праз невядомую камеру або адсутнасць доступу." + }, + "calendarFilter": { + "last24Hours": "Апошнія 24 гадзіны" + }, + "markAsReviewed": "Пазначыць як разгледжанае", + "markTheseItemsAsReviewed": "Пазначыць гэтыя элементы як разгледжаныя", + "newReviewItems": { + "label": "Паказаць новыя элементы разгляду", + "button": "Новыя элементы для разгляду" + }, + "select_all": "Усе", + "detected": "выяўлена", + "normalActivity": "Звычайны", + "needsReview": "Патрабуе разгляду", + "securityConcern": "Пытанне бяспекі", + "motionSearch": { + "menuItem": "Пошук руху", + "openMenu": "Параметры камеры" + }, + "motionPreviews": { + "menuItem": "Паказаць перадпрагляды руху", + "title": "Перадпрагляды руху: {{camera}}", + "mobileSettingsTitle": "Налады перадпрагляду руху", + "mobileSettingsDesc": "Наладзьце хуткасць прайгравання, зацямненне і абрэзку, а таксама выберыце дату для разгляду кліпаў толькі з рухам.", + "dim": "Зацямненне", + "dimAria": "Наладзіць сілу зацямнення", + "dimDesc": "Павялічце зацямненне, каб лепш бачыць вобласці з рухам.", + "speed": "Хуткасць", + "speedAria": "Выбраць хуткасць прайгравання перадпрагляду", + "speedDesc": "Выберыце, як хутка прайграваць кліпы перадпрагляду.", + "back": "Назад", + "empty": "Перадпрагляды недаступныя", + "noPreview": "Перадпрагляд недаступны", + "seekAria": "Перайсці ў плэеры {{camera}} на {{time}}", + "filter": "Фільтр", + "filterDesc": "Выберыце вобласці, каб паказваць толькі кліпы з рухам у іх.", + "filterClear": "Ачысціць", + "crop": "Абрэзаць па фільтры", + "cropAria": "Пераключыць абрэзку перадпрагляду па выбраных вобласцях", + "cropDesc": "Набліжаць перадпрагляды да выбраных вобласцей фільтра замест паказу ўсяго кадра." + } +} diff --git a/web/public/locales/be/views/explore.json b/web/public/locales/be/views/explore.json new file mode 100644 index 0000000000..bd1612dafb --- /dev/null +++ b/web/public/locales/be/views/explore.json @@ -0,0 +1,267 @@ +{ + "documentTitle": "Агляд - Frigate", + "generativeAI": "Generative AI", + "exploreMore": "Паглядзець іншыя аб'екты «{{label}}»", + "exploreIsUnavailable": { + "title": "Агляд недаступны", + "embeddingsReindexing": { + "context": "Агляд стане даступным пасля таго, як завершыцца пераіндэксацыя ўбудаванняў аб'ектаў пад адсочваннем.", + "startingUp": "Запуск…", + "estimatedTime": "Прыблізна засталося:", + "finishingShortly": "Хутка завершыцца", + "step": { + "thumbnailsEmbedded": "Апрацавана паменшаных выяў: ", + "descriptionsEmbedded": "Апрацавана апісанняў: ", + "trackedObjectsProcessed": "Апрацавана аб'ектаў пад адсочваннем: " + } + }, + "downloadingModels": { + "context": "Frigate спампоўвае мадэлі ўбудаванняў, патрэбныя для семантычнага пошуку. Гэта можа заняць некалькі хвілін у залежнасці ад хуткасці вашага злучэння.", + "setup": { + "visionModel": "Мадэль зроку", + "visionModelFeatureExtractor": "Экстрактар прыкмет мадэлі зроку", + "textModel": "Тэкставая мадэль", + "textTokenizer": "Тэкставы такенізатар" + }, + "tips": { + "context": "Пасля спампоўкі мадэляў варта пераіндэксаваць убудаванні вашых аб'ектаў пад адсочваннем." + }, + "error": "Адбылася памылка. Праверце журналы Frigate." + } + }, + "trackedObjectDetails": "Падрабязнасці пра аб'ект пад адсочваннем", + "type": { + "details": "падрабязнасці", + "snapshot": "здымак", + "thumbnail": "паменшаная выява", + "video": "відэа", + "tracking_details": "падрабязнасці адсочвання" + }, + "trackingDetails": { + "title": "Падрабязнасці адсочвання", + "noImageFound": "Для гэтай меткі часу відарыса не знойдзена.", + "createObjectMask": "Стварыць маску аб'ектаў", + "adjustAnnotationSettings": "Наладзіць параметры анатацый", + "scrollViewTips": "Націсніце, каб паглядзець важныя моманты жыццёвага цыкла гэтага аб'екта.", + "autoTrackingTips": "Для камер з аўтаадсочваннем становішча абмяжавальнага прамавугольніка будзе недакладным.", + "count": "{{first}} з {{second}}", + "trackedPoint": "Пункт адсочвання", + "lifecycleItemDesc": { + "visible": "{{label}} выяўлены", + "entered_zone": "{{label}} увайшоў у {{zones}}", + "active": "{{label}} стаў актыўным", + "stationary": "{{label}} стаў нерухомым", + "attribute": { + "faceOrLicense_plate": "{{attribute}} выяўлены для {{label}}", + "other": "{{label}} распазнаны як {{attribute}}" + }, + "gone": "{{label}} выйшаў", + "heard": "{{label}} пачуты", + "external": "{{label}} выяўлены", + "header": { + "zones": "Зоны", + "ratio": "Суадносіны", + "area": "Вобласць", + "score": "Бал", + "computedScore": "Разлічаны бал", + "topScore": "Найвышэйшы бал", + "toggleAdvancedScores": "Пераключыць падрабязныя балы" + } + }, + "annotationSettings": { + "title": "Параметры анатацый", + "showAllZones": { + "title": "Паказваць усе зоны", + "desc": "Заўсёды паказваць зоны на кадрах, дзе аб'екты ўвайшлі ў зону." + }, + "offset": { + "label": "Зрух анатацый", + "desc": "Гэтыя даныя паступаюць з плыні «detect» вашай камеры, але накладаюцца на відарысы з плыні «record». Наўрад ці абедзве плыні ідэальна сінхронныя, таму абмяжавальны прамавугольнік і відэа не супадуць дакладна. Гэтым параметрам можна зрушыць анатацыі наперад або назад у часе, каб лепш сумясціць іх з запісаным відэа.", + "millisecondsToOffset": "Зрух анатацый дэтэктавання ў мілісекундах. Прадвызначана: 0", + "tips": "Паменшыце значэнне, калі відэа апярэджвае прамавугольнікі і пункты шляху, і павялічце, калі адстае. Значэнне можа быць адмоўным.", + "toast": { + "success": "Зрух анатацый для {{camera}} захаваны ў файл канфігурацыі." + } + } + }, + "carousel": { + "previous": "Папярэдні слайд", + "next": "Наступны слайд" + } + }, + "details": { + "item": { + "title": "Падрабязнасці элемента разгляду", + "desc": "Падрабязнасці элемента разгляду", + "button": { + "share": "Падзяліцца гэтым элементам разгляду", + "viewInExplore": "Паказаць у аглядзе" + }, + "tips": { + "mismatch_one": "Выяўлены і ўключаны ў гэты элемент разгляду {{count}} недаступны аб'ект. Гэтыя аб'екты або не адпавядалі ўмовам абвесткі ці дэтэктавання, або ўжо выдалены.", + "mismatch_few": "Выяўлены і ўключаны ў гэты элемент разгляду {{count}} недаступныя аб'екты. Гэтыя аб'екты або не адпавядалі ўмовам абвесткі ці дэтэктавання, або ўжо выдалены.", + "mismatch_many": "Выяўлена і ўключана ў гэты элемент разгляду {{count}} недаступных аб'ектаў. Гэтыя аб'екты або не адпавядалі ўмовам абвесткі ці дэтэктавання, або ўжо выдалены.", + "hasMissingObjects": "Змяніце канфігурацыю, калі хочаце, каб Frigate захоўваў аб'екты пад адсочваннем для гэтых метак: {{objects}}" + }, + "toast": { + "success": { + "regenerate": "У {{provider}} запытана новае апісанне. У залежнасці ад хуткасці правайдара гэта можа заняць некаторы час.", + "updatedSublabel": "Падметка абноўлена.", + "updatedLPR": "Нумарны знак абноўлены.", + "updatedAttributes": "Атрыбуты абноўлены.", + "audioTranscription": "Транскрыпцыя гуку запытана. У залежнасці ад хуткасці вашага сервера Frigate гэта можа заняць некаторы час." + }, + "error": { + "regenerate": "Не ўдалося звярнуцца да {{provider}} за новым апісаннем: {{errorMessage}}", + "updatedSublabelFailed": "Не ўдалося абнавіць падметку: {{errorMessage}}", + "updatedLPRFailed": "Не ўдалося абнавіць нумарны знак: {{errorMessage}}", + "updatedAttributesFailed": "Не ўдалося абнавіць атрыбуты: {{errorMessage}}", + "audioTranscription": "Не ўдалося запытаць транскрыпцыю гуку: {{errorMessage}}" + } + } + }, + "label": "Метка", + "editSubLabel": { + "title": "Рэдагаваць падметку", + "desc": "Увядзіце новую падметку для гэтага аб'екта «{{label}}»", + "descNoLabel": "Увядзіце новую падметку для гэтага аб'екта пад адсочваннем" + }, + "editLPR": { + "title": "Рэдагаваць нумарны знак", + "desc": "Увядзіце новы нумарны знак для гэтага аб'екта «{{label}}»", + "descNoLabel": "Увядзіце новы нумарны знак для гэтага аб'екта пад адсочваннем" + }, + "editAttributes": { + "title": "Рэдагаваць атрыбуты", + "desc": "Выберыце атрыбуты класіфікацыі для гэтага аб'екта «{{label}}»" + }, + "snapshotScore": { + "label": "Бал здымка" + }, + "topScore": { + "label": "Найвышэйшы бал", + "info": "Найвышэйшы бал - гэта найбольшы медыянны бал аб'екта пад адсочваннем, таму ён можа адрознівацца ад бала на паменшанай выяве ў выніках пошуку." + }, + "score": { + "label": "Бал" + }, + "recognizedLicensePlate": "Распазнаны нумарны знак", + "attributes": "Атрыбуты класіфікацыі", + "estimatedSpeed": "Ацэненая хуткасць", + "objects": "Аб'екты", + "camera": "Камера", + "zones": "Зоны", + "timestamp": "Метка часу", + "button": { + "findSimilar": "Знайсці падобныя", + "regenerate": { + "title": "Стварыць нанова", + "label": "Стварыць нанова апісанне аб'екта пад адсочваннем" + } + }, + "description": { + "label": "Апісанне", + "placeholder": "Апісанне аб'екта пад адсочваннем", + "aiTips": "Frigate не будзе запытваць апісанне ў правайдара Generative AI, пакуль не завершыцца жыццёвы цыкл аб'екта пад адсочваннем." + }, + "expandRegenerationMenu": "Разгарнуць меню стварэння нанова", + "regenerateFromSnapshot": "Стварыць нанова са здымка", + "regenerateFromThumbnails": "Стварыць нанова з паменшаных выяў", + "tips": { + "descriptionSaved": "Апісанне захавана", + "saveDescriptionFailed": "Не ўдалося абнавіць апісанне: {{errorMessage}}" + }, + "title": { + "label": "Загаловак" + }, + "scoreInfo": "Звесткі пра бал" + }, + "itemMenu": { + "downloadVideo": { + "label": "Спампаваць відэа", + "aria": "Спампаваць відэа" + }, + "downloadSnapshot": { + "label": "Спампаваць здымак", + "aria": "Спампаваць здымак" + }, + "downloadCleanSnapshot": { + "label": "Спампаваць чысты здымак", + "aria": "Спампаваць чысты здымак" + }, + "viewTrackingDetails": { + "label": "Паказаць падрабязнасці адсочвання", + "aria": "Паказаць падрабязнасці адсочвання" + }, + "findSimilar": { + "label": "Знайсці падобныя", + "aria": "Знайсці падобныя аб'екты пад адсочваннем" + }, + "addTrigger": { + "label": "Дадаць трыгер", + "aria": "Дадаць трыгер для гэтага аб'екта пад адсочваннем" + }, + "audioTranscription": { + "label": "Транскрыбіраваць", + "aria": "Запытаць транскрыпцыю гуку" + }, + "submitToPlus": { + "label": "Адправіць у Frigate+", + "aria": "Адправіць у Frigate Plus" + }, + "viewInHistory": { + "label": "Паказаць у гісторыі", + "aria": "Паказаць у гісторыі" + }, + "deleteTrackedObject": { + "label": "Выдаліць гэты аб'ект пад адсочваннем" + }, + "showObjectDetails": { + "label": "Паказаць шлях аб'екта" + }, + "hideObjectDetails": { + "label": "Схаваць шлях аб'екта" + }, + "debugReplay": { + "label": "Адладачны паўтор", + "aria": "Паказаць гэты аб'ект у выглядзе адладачнага паўтору" + }, + "more": { + "aria": "Больш" + } + }, + "dialog": { + "confirmDelete": { + "title": "Пацвердзіце выдаленне", + "desc": "Выдаленне гэтага аб'екта пад адсочваннем прыбярэ здымак, усе захаваныя ўбудаванні і ўсе звязаныя запісы падрабязнасцей адсочвання. Запісанае відэа гэтага аб'екта ў выглядзе «Гісторыя» НЕ будзе выдалена.

Сапраўды працягнуць?" + }, + "toast": { + "error": "Памылка выдалення гэтага аб'екта пад адсочваннем: {{errorMessage}}" + } + }, + "noTrackedObjects": "Аб'ектаў пад адсочваннем не знойдзена", + "fetchingTrackedObjectsFailed": "Памылка атрымання аб'ектаў пад адсочваннем: {{errorMessage}}", + "trackedObjectsCount_one": "{{count}} аб'ект пад адсочваннем ", + "trackedObjectsCount_few": "{{count}} аб'екты пад адсочваннем ", + "trackedObjectsCount_many": "{{count}} аб'ектаў пад адсочваннем ", + "searchResult": { + "tooltip": "Супадзенне {{type}} на {{confidence}}%", + "previousTrackedObject": "Папярэдні аб'ект пад адсочваннем", + "nextTrackedObject": "Наступны аб'ект пад адсочваннем", + "deleteTrackedObject": { + "toast": { + "success": "Аб'ект пад адсочваннем выдалены.", + "error": "Не ўдалося выдаліць аб'ект пад адсочваннем: {{errorMessage}}" + } + } + }, + "aiAnalysis": { + "title": "Аналіз ШІ" + }, + "concerns": { + "label": "Заўвагі" + }, + "objectLifecycle": { + "noImageFound": "Для гэтага аб'екта пад адсочваннем відарыса не знойдзена." + } +} diff --git a/web/public/locales/be/views/exports.json b/web/public/locales/be/views/exports.json new file mode 100644 index 0000000000..8b66080f95 --- /dev/null +++ b/web/public/locales/be/views/exports.json @@ -0,0 +1,128 @@ +{ + "documentTitle": "Экспарт - Frigate", + "search": "Пошук", + "noExports": "Экспартаў не знойдзена", + "headings": { + "cases": "Справы", + "uncategorizedExports": "Экспарты без катэгорыі" + }, + "deleteExport": { + "label": "Выдаліць экспарт", + "desc": "Сапраўды выдаліць {{exportName}}?" + }, + "editExport": { + "title": "Перайменаваць экспарт", + "desc": "Увядзіце новую назву гэтага экспарту.", + "saveExport": "Захаваць экспарт" + }, + "tooltip": { + "shareExport": "Падзяліцца экспартам", + "downloadVideo": "Спампаваць відэа", + "editName": "Рэдагаваць назву", + "deleteExport": "Выдаліць экспарт", + "assignToCase": "Дадаць у справу", + "removeFromCase": "Прыбраць са справы" + }, + "toolbar": { + "newCase": "Новая справа", + "addExport": "Дадаць экспарт", + "editCase": "Рэдагаваць справу", + "deleteCase": "Выдаліць справу" + }, + "toast": { + "error": { + "renameExportFailed": "Не ўдалося перайменаваць экспарт: {{errorMessage}}", + "assignCaseFailed": "Не ўдалося абнавіць прывязку да справы: {{errorMessage}}", + "caseSaveFailed": "Не ўдалося захаваць справу: {{errorMessage}}", + "caseDeleteFailed": "Не ўдалося выдаліць справу: {{errorMessage}}" + } + }, + "deleteCase": { + "label": "Выдаліць справу", + "desc": "Сапраўды выдаліць {{caseName}}?", + "descKeepExports": "Экспарты застануцца даступнымі як экспарты без катэгорыі.", + "descDeleteExports": "Усе экспарты гэтай справы будуць выдалены назаўсёды.", + "deleteExports": "Таксама выдаліць экспарты" + }, + "caseDialog": { + "title": "Дадаць у справу", + "description": "Выберыце наяўную справу або стварыце новую.", + "selectLabel": "Справа", + "newCaseOption": "Стварыць новую справу", + "nameLabel": "Назва справы", + "descriptionLabel": "Апісанне" + }, + "caseCard": { + "emptyCase": "Пакуль няма экспартаў" + }, + "jobCard": { + "defaultName": "Экспарт {{camera}}", + "queued": "У чарзе", + "running": "Выконваецца", + "preparing": "Падрыхтоўка", + "copying": "Капіяванне", + "encoding": "Кадаванне", + "encodingRetry": "Кадаванне (паўтор)", + "finalizing": "Завяршэнне" + }, + "caseView": { + "noDescription": "Без апісання", + "createdAt": "Створана {{value}}", + "exportCount_one": "1 экспарт", + "exportCount_other": "{{count}} экспарту", + "cameraCount_one": "1 камера", + "cameraCount_other": "{{count}} камеры", + "showMore": "Паказаць больш", + "showLess": "Паказаць меней", + "emptyTitle": "Гэта справа пустая", + "emptyDescription": "Дадайце наяўныя экспарты без катэгорыі, каб справа была ўпарадкаванай.", + "emptyDescriptionNoExports": "Пакуль няма экспартаў без катэгорыі, якія можна дадаць." + }, + "caseEditor": { + "createTitle": "Стварыць справу", + "editTitle": "Рэдагаваць справу", + "namePlaceholder": "Назва справы", + "descriptionPlaceholder": "Дадайце нататкі або кантэкст для гэтай справы" + }, + "addExportDialog": { + "title": "Дадаць экспарт у {{caseName}}", + "searchPlaceholder": "Пошук экспартаў без катэгорыі", + "empty": "Няма экспартаў без катэгорыі, якія адпавядаюць запыту.", + "addButton_one": "Дадаць 1 экспарт", + "addButton_other": "Дадаць {{count}} экспарту", + "adding": "Даданне…" + }, + "selected_one": "Выбрана: {{count}}", + "selected_other": "Выбрана: {{count}}", + "bulkActions": { + "addToCase": "Дадаць у справу", + "moveToCase": "Перамясціць у справу", + "removeFromCase": "Прыбраць са справы", + "delete": "Выдаліць", + "deleteNow": "Выдаліць зараз" + }, + "bulkDelete": { + "title": "Выдаліць экспарты", + "desc_one": "Сапраўды выдаліць {{count}} экспарт?", + "desc_other": "Сапраўды выдаліць {{count}} экспарту?" + }, + "bulkRemoveFromCase": { + "title": "Прыбраць са справы", + "desc_one": "Прыбраць {{count}} экспарт з гэтай справы?", + "desc_other": "Прыбраць {{count}} экспарту з гэтай справы?", + "descKeepExports": "Экспарты будуць перанесены ў катэгорыю «без катэгорыі».", + "descDeleteExports": "Экспарты будуць выдалены назаўсёды.", + "deleteExports": "Замест гэтага выдаліць экспарты" + }, + "bulkToast": { + "success": { + "delete": "Экспарты выдалены", + "reassign": "Прывязка да справы абноўлена", + "remove": "Экспарты прыбраны са справы" + }, + "error": { + "deleteFailed": "Не ўдалося выдаліць экспарты: {{errorMessage}}", + "reassignFailed": "Не ўдалося абнавіць прывязку да справы: {{errorMessage}}" + } + } +} diff --git a/web/public/locales/be/views/faceLibrary.json b/web/public/locales/be/views/faceLibrary.json new file mode 100644 index 0000000000..915ad42411 --- /dev/null +++ b/web/public/locales/be/views/faceLibrary.json @@ -0,0 +1,102 @@ +{ + "details": { + "timestamp": "Метка часу", + "unknown": "Невядома", + "scoreInfo": "Бал - гэта сярэдняе ўзважанае ўсіх балаў твару, узважанае па памеры твару на кожным відарысе." + }, + "description": { + "addFace": "Дадайце новую калекцыю ў бібліятэку асоб, запампаваўшы першы відарыс.", + "placeholder": "Увядзіце назву гэтай калекцыі", + "invalidName": "Памылковая назва. Назвы могуць утрымліваць толькі літары, лічбы, прабелы, апострафы, падкрэсліванні і злучкі.", + "nameCannotContainHash": "Назва не можа ўтрымліваць #." + }, + "documentTitle": "Бібліятэка асоб - Frigate", + "uploadFaceImage": { + "title": "Запампаваць відарыс твару", + "desc": "Запампуйце відарыс, каб знайсці на ім твары і дадаць у {{pageToggle}}" + }, + "collections": "Калекцыі", + "createFaceLibrary": { + "new": "Стварыць новую асобу", + "nextSteps": "Каб закласці добрую аснову:
  • Скарыстайцеся ўкладкай «Апошнія распазнаванні», каб выбраць відарысы для навучання па кожнай выяўленай асобе.
  • Для лепшага выніку бярыце відарысы твару анфас, пазбягайце твараў пад вуглом.
  • " + }, + "steps": { + "faceName": "Увядзіце імя асобы", + "uploadFace": "Запампуйце відарыс твару", + "nextSteps": "Наступныя крокі", + "description": { + "uploadFace": "Запампуйце відарыс {{name}}, дзе твар зняты анфас. Абразаць відарыс да аднаго твару не трэба." + } + }, + "train": { + "title": "Апошнія распазнаванні", + "titleShort": "Апошнія", + "aria": "Выбраць апошнія распазнаванні", + "empty": "Нядаўніх спроб распазнавання асобы няма", + "emptyNoLibrary": { + "title": "Запампуйце твар", + "description": "Каб распазнаванне асобы працавала, трэба дадаць у бібліятэку хаця б адзін твар." + } + }, + "deleteFaceLibrary": { + "title": "Выдаліць імя", + "desc": "Сапраўды выдаліць калекцыю {{name}}? Гэта назаўсёды выдаліць усе звязаныя твары." + }, + "deleteFaceAttempts": { + "title": "Выдаліць твары", + "desc_one": "Сапраўды выдаліць {{count}} твар? Гэтае дзеянне нельга адрабіць.", + "desc_few": "Сапраўды выдаліць {{count}} твары? Гэтае дзеянне нельга адрабіць.", + "desc_many": "Сапраўды выдаліць {{count}} твараў? Гэтае дзеянне нельга адрабіць." + }, + "renameFace": { + "title": "Перайменаваць твар", + "desc": "Увядзіце новае імя для {{name}}" + }, + "button": { + "deleteFaceAttempts": "Выдаліць твары", + "addFace": "Дадаць твар", + "renameFace": "Перайменаваць твар", + "deleteFace": "Выдаліць твар", + "uploadImage": "Запампаваць відарыс", + "reprocessFace": "Апрацаваць твар нанова" + }, + "imageEntry": { + "validation": { + "selectImage": "Выберыце файл відарыса." + }, + "dropActive": "Перацягніце відарыс сюды…", + "dropInstructions": "Перацягніце або ўстаўце відарыс сюды, або націсніце, каб выбраць", + "maxSize": "Максімальны памер: {{size}} МБ" + }, + "nofaces": "Твараў няма", + "trainFaceAs": "Навучыць твар як:", + "trainFace": "Навучыць твар", + "reclassifyFaceAs": "Перакласіфікаваць твар як:", + "reclassifyFace": "Перакласіфікаваць твар", + "toast": { + "success": { + "uploadedImage": "Відарыс запампаваны.", + "addFaceLibrary": "{{name}} дададзены ў бібліятэку асоб!", + "deletedFace_one": "Выдалены {{count}} твар.", + "deletedFace_few": "Выдалена {{count}} твары.", + "deletedFace_many": "Выдалена {{count}} твараў.", + "deletedName_one": "Выдалены {{count}} твар.", + "deletedName_few": "Выдалена {{count}} твары.", + "deletedName_many": "Выдалена {{count}} твараў.", + "renamedFace": "Твар перайменаваны на {{name}}", + "trainedFace": "Твар навучаны.", + "reclassifiedFace": "Твар перакласіфікаваны.", + "updatedFaceScore": "Бал твару абноўлены на {{name}} ({{score}})." + }, + "error": { + "uploadingImageFailed": "Не ўдалося запампаваць відарыс: {{errorMessage}}", + "addFaceLibraryFailed": "Не ўдалося задаць імя асобы: {{errorMessage}}", + "deleteFaceFailed": "Не ўдалося выдаліць: {{errorMessage}}", + "deleteNameFailed": "Не ўдалося выдаліць імя: {{errorMessage}}", + "renameFaceFailed": "Не ўдалося перайменаваць твар: {{errorMessage}}", + "trainFailed": "Не ўдалося навучыць: {{errorMessage}}", + "reclassifyFailed": "Не ўдалося перакласіфікаваць твар: {{errorMessage}}", + "updateFaceScoreFailed": "Не ўдалося абнавіць бал твару: {{errorMessage}}" + } + } +} diff --git a/web/public/locales/be/views/live.json b/web/public/locales/be/views/live.json new file mode 100644 index 0000000000..81a0b1e912 --- /dev/null +++ b/web/public/locales/be/views/live.json @@ -0,0 +1,200 @@ +{ + "documentTitle": { + "default": "Жывы прагляд - Frigate", + "withCamera": "{{camera}} - жывы прагляд - Frigate" + }, + "lowBandwidthMode": "Рэжым нізкай паласы прапускання", + "twoWayTalk": { + "enable": "Уключыць двухбаковую размову", + "disable": "Адключыць двухбаковую размову" + }, + "cameraAudio": { + "enable": "Уключыць гук камеры", + "disable": "Адключыць гук камеры" + }, + "ptz": { + "move": { + "clickMove": { + "label": "Націсніце ў кадры, каб цэнтраваць камеру", + "enable": "Уключыць перамяшчэнне націсканнем", + "enableWithZoom": "Уключыць перамяшчэнне націсканнем і маштабаванне перацягваннем", + "disable": "Адключыць перамяшчэнне націсканнем" + }, + "left": { + "label": "Павярнуць камеру PTZ улева" + }, + "up": { + "label": "Павярнуць камеру PTZ уверх" + }, + "down": { + "label": "Павярнуць камеру PTZ уніз" + }, + "right": { + "label": "Павярнуць камеру PTZ управа" + } + }, + "zoom": { + "in": { + "label": "Наблізіць камеру PTZ" + }, + "out": { + "label": "Аддаліць камеру PTZ" + } + }, + "focus": { + "in": { + "label": "Навесці фокус камеры PTZ бліжэй" + }, + "out": { + "label": "Навесці фокус камеры PTZ далей" + } + }, + "frame": { + "center": { + "label": "Націсніце ў кадры, каб цэнтраваць камеру PTZ" + } + }, + "presets": "Прэсеты камеры PTZ" + }, + "camera": { + "turnOn": "Уключыць камеру", + "turnOff": "Выключыць камеру" + }, + "muteCameras": { + "enable": "Выключыць гук усіх камер", + "disable": "Уключыць гук усіх камер" + }, + "detect": { + "enable": "Уключыць дэтэктаванне", + "disable": "Адключыць дэтэктаванне" + }, + "recording": { + "enable": "Уключыць запіс", + "disable": "Адключыць запіс", + "disabledInConfig": "Спачатку трэба ўключыць запіс для гэтай камеры ў наладах." + }, + "snapshots": { + "enable": "Уключыць здымкі", + "disable": "Адключыць здымкі" + }, + "snapshot": { + "takeSnapshot": "Спампаваць імгненны здымак", + "noVideoSource": "Няма відэакрыніцы для здымка.", + "captureFailed": "Не ўдалося зрабіць здымак.", + "downloadStarted": "Спампоўка здымка пачалася." + }, + "audioDetect": { + "enable": "Уключыць дэтэктаванне гуку", + "disable": "Адключыць дэтэктаванне гуку" + }, + "transcription": { + "enable": "Уключыць жывую транскрыпцыю гуку", + "disable": "Адключыць жывую транскрыпцыю гуку" + }, + "autotracking": { + "enable": "Уключыць аўтаадсочванне", + "disable": "Адключыць аўтаадсочванне" + }, + "streamStats": { + "enable": "Паказваць статыстыку плыні", + "disable": "Схаваць статыстыку плыні" + }, + "manualRecording": { + "title": "Па запатрабаванні", + "tips": "Спампуйце імгненны здымак або пачніце ручную падзею паводле налад захоўвання запісаў гэтай камеры.", + "playInBackground": { + "label": "Прайграваць у фоне", + "desc": "Уключыце гэты параметр, каб плынь працягваўся, калі плэер схаваны." + }, + "showStats": { + "label": "Паказваць статыстыку", + "desc": "Уключыце гэты параметр, каб паказваць статыстыку плыні паверх відарыса камеры." + }, + "debugView": "Адладачны выгляд", + "start": "Пачаць запіс па запатрабаванні", + "started": "Ручны запіс па запатрабаванні пачаты.", + "failedToStart": "Не ўдалося пачаць ручны запіс па запатрабаванні.", + "recordDisabledTips": "Паколькі запіс для гэтай камеры адключаны або абмежаваны ў канфігурацыі, будзе захаваны толькі здымак.", + "end": "Скончыць запіс па запатрабаванні", + "ended": "Ручны запіс па запатрабаванні скончаны.", + "failedToEnd": "Не ўдалося скончыць ручны запіс па запатрабаванні." + }, + "streamingSettings": "Налады трансляцыі", + "notifications": "Апавяшчэнні", + "audio": "Аўдыя", + "suspend": { + "forTime": "Прыпыніць на: " + }, + "stream": { + "title": "Плынь", + "audio": { + "tips": { + "title": "Гук мусіць выводзіцца з камеры і быць наладжаны ў go2rtc для гэтай плыні." + }, + "available": "Для гэтай плыні даступны гук", + "unavailable": "Для гэтай плыні гук недаступны" + }, + "debug": { + "picker": "Выбар плыні недаступны ў рэжыме адладкі. Адладачны выгляд заўсёды выкарыстоўвае плынь з роляй «detect»." + }, + "twoWayTalk": { + "tips": "Ваша прылада мусіць падтрымліваць гэтую функцыю, а WebRTC мусіць быць наладжаны для двухбаковай размовы.", + "available": "Для гэтай плыні даступная двухбаковая размова", + "unavailable": "Для гэтай плыні двухбаковая размова недаступная" + }, + "lowBandwidth": { + "tips": "Жывы прагляд працуе ў рэжыме нізкай паласы прапускання праз буферызацыю або памылкі плыні.", + "resetStream": "Скінуць плынь" + }, + "playInBackground": { + "label": "Прайграваць у фоне", + "tips": "Уключыце гэты параметр, каб плынь працягваўся, калі плэер схаваны." + } + }, + "cameraSettings": { + "title": "Налады: {{camera}}", + "camera": "Камера", + "objectDetection": "Дэтэктаванне аб'ектаў", + "recording": "Запіс", + "snapshots": "Здымкі", + "audioDetection": "Дэтэктаванне гуку", + "transcription": "Транскрыпцыя гуку", + "autotracking": "Аўтаадсочванне" + }, + "history": { + "label": "Паказаць архіўныя відэа" + }, + "effectiveRetainMode": { + "modes": { + "all": "Усе", + "motion": "Рух", + "active_objects": "Актыўныя аб'екты" + } + }, + "editLayout": { + "label": "Рэдагаваць макет", + "group": { + "label": "Рэдагаваць групу камер" + }, + "exitEdit": "Выйсці з рэдагавання" + }, + "noCameras": { + "title": "Камеры не наладжаны", + "description": "Пачніце з падлучэння камеры да Frigate.", + "buttonText": "Дадаць камеру", + "restricted": { + "title": "Няма даступных камер", + "description": "У вас няма дазволу праглядаць камеры ў гэтай групе." + }, + "default": { + "title": "Камеры не наладжаны", + "description": "Пачніце з падлучэння камеры да Frigate.", + "buttonText": "Дадаць камеру" + }, + "group": { + "title": "У групе няма камер", + "description": "У гэтай групе камер няма прызначаных або ўключаных камер.", + "buttonText": "Кіраваць групамі" + } + } +} diff --git a/web/public/locales/be/views/motionSearch.json b/web/public/locales/be/views/motionSearch.json new file mode 100644 index 0000000000..935d066ab3 --- /dev/null +++ b/web/public/locales/be/views/motionSearch.json @@ -0,0 +1,80 @@ +{ + "documentTitle": "Пошук руху - Frigate", + "title": "Пошук руху", + "description": "Намалюйце шматвугольнік, каб задаць вобласць цікавасці, і ўкажыце прамежак часу для пошуку змен руху ў гэтай вобласці.", + "selectCamera": "Пошук руху загружаецца", + "startSearch": "Пачаць пошук", + "searchStarted": "Пошук пачаты", + "searchCancelled": "Пошук скасаваны", + "cancelSearch": "Скасаваць", + "searching": "Пошук выконваецца.", + "scanning": "Сканіраванне {{time}}", + "searchComplete": "Пошук завершаны", + "noResultsYet": "Запусціце пошук, каб знайсці змены руху ў выбранай вобласці", + "noChangesFound": "У выбранай вобласці змен пікселяў не выяўлена", + "changesFound_one": "Знойдзена {{count}} змена руху", + "changesFound_few": "Знойдзена {{count}} змены руху", + "changesFound_many": "Знойдзена {{count}} змен руху", + "framesProcessed": "Апрацаваны {{count}} кадр", + "jumpToTime": "Перайсці на гэты час", + "results": "Вынікі", + "showSegmentHeatmap": "Цеплавая карта", + "newSearch": "Новы пошук", + "clearResults": "Ачысціць вынікі", + "clearROI": "Ачысціць шматвугольнік", + "polygonControls": { + "points_one": "{{count}} пункт", + "points_few": "{{count}} пункты", + "points_many": "{{count}} пунктаў", + "undo": "Адрабіць апошні пункт", + "reset": "Скінуць шматвугольнік", + "drawMode": "Маляваць", + "moveMode": "Перамяшчаць" + }, + "motionHeatmapLabel": "Цеплавая карта руху", + "dialog": { + "title": "Пошук руху", + "cameraLabel": "Камера", + "previewAlt": "Перадпрагляд камеры {{camera}}" + }, + "timeRange": { + "title": "Прамежак пошуку", + "start": "Час пачатку", + "end": "Час заканчэння" + }, + "settings": { + "title": "Налады пошуку", + "parallelMode": "Паралельны рэжым", + "parallelModeDesc": "Сканіраваць некалькі прамежкаў запісу адначасова (хутчэй, але патрабуе больш рэсурсаў на дэкадаванне)", + "threshold": "Парог адчувальнасці", + "thresholdDesc": "Меншыя значэнні выяўляюць меншыя змены (1-255)", + "minArea": "Мінімальная вобласць змены", + "minAreaDesc": "Мінімальны памер асобнай вобласці руху ў працэнтах ад вобласці цікавасці", + "maxResults": "Максімум вынікаў", + "maxResultsDesc": "Спыніцца пасля такой колькасці супадзенняў па метках часу" + }, + "errors": { + "noCamera": "Выберыце камеру", + "noROI": "Намалюйце вобласць цікавасці", + "noTimeRange": "Выберыце прамежак часу", + "invalidTimeRange": "Час заканчэння мусіць быць пазней за час пачатку", + "searchFailed": "Пошук не ўдаўся: {{message}}", + "polygonTooSmall": "Шматвугольнік мусіць мець не меней за 3 пункты", + "unknown": "Невядомая памылка" + }, + "changePercentage": "Зменена на {{percentage}}%", + "metrics": { + "title": "Метрыкі пошуку", + "segmentsScanned": "Прасканіравана сегментаў", + "segmentsProcessed": "Апрацавана", + "segmentsSkippedInactive": "Прапушчана (няма актыўнасці)", + "segmentsSkippedHeatmap": "Прапушчана (няма перакрыцця з вобласцю)", + "fallbackFullRange": "Рэзервовае сканіраванне ўсяго прамежку", + "framesDecoded": "Дэкадавана кадраў", + "wallTime": "Час пошуку", + "segmentErrors": "Памылкі сегментаў", + "seconds": "{{seconds}} с", + "minutesSeconds": "{{minutes}} хв {{seconds}} с", + "scanSummary": "сегментаў: {{segments}} · {{time}}" + } +} diff --git a/web/public/locales/be/views/recording.json b/web/public/locales/be/views/recording.json new file mode 100644 index 0000000000..f0a41a9925 --- /dev/null +++ b/web/public/locales/be/views/recording.json @@ -0,0 +1,12 @@ +{ + "filter": "Фільтр", + "export": "Экспарт", + "calendar": "Каляндар", + "filters": "Фільтры", + "toast": { + "error": { + "noValidTimeSelected": "Не выбраны сапраўдны прамежак часу", + "endTimeMustAfterStartTime": "Час заканчэння мусіць быць пазней за час пачатку" + } + } +} diff --git a/web/public/locales/be/views/replay.json b/web/public/locales/be/views/replay.json new file mode 100644 index 0000000000..c59da2a288 --- /dev/null +++ b/web/public/locales/be/views/replay.json @@ -0,0 +1,60 @@ +{ + "title": "Адладачны паўтор", + "description": "Паўтараць запісы камеры для адладкі. Спіс аб'ектаў паказвае зводку выяўленых аб'ектаў з затрымкай, а ўкладка «Паведамленні» паказвае плынь унутраных паведамленняў Frigate з відэа паўтору.", + "websocket_messages": "Паведамленні", + "dialog": { + "title": "Запусціць адладачны паўтор", + "description": "Стварыць часовую камеру паўтору, якая зацыклівае архіўныя відэа для адладкі праблем з дэтэктаваннем і адсочваннем аб'ектаў. Камера паўтору будзе мець тую самую канфігурацыю дэтэктавання, што і зыходная камера. Выберыце прамежак часу, каб пачаць.", + "camera": "Зыходная камера", + "timeRange": "Прамежак часу", + "preset": { + "1m": "Апошняя 1 хвіліна", + "5m": "Апошнія 5 хвілін", + "timeline": "Са шкалы часу", + "custom": "Уласны" + }, + "startButton": "Запусціць паўтор", + "selectFromTimeline": "Выбраць", + "starting": "Запуск паўтору…", + "startLabel": "Запусціць", + "endLabel": "Канец", + "toast": { + "error": "Не ўдалося запусціць адладачны паўтор: {{error}}", + "alreadyActive": "Сеанс паўтору ўжо актыўны", + "noRecordings": "У выбраным прамежку часу запісаў не знойдзена", + "stopError": "Не ўдалося спыніць адладачны паўтор: {{error}}", + "goToReplay": "Перайсці да паўтору" + } + }, + "page": { + "noSession": "Няма актыўнага сеанса адладачнага паўтору", + "noSessionDesc": "Запусціце адладачны паўтор з выгляду «Гісторыя»: націсніце кнопку «Дзеянні» на панэлі інструментаў і выберыце «Адладачны паўтор».", + "goToRecordings": "Перайсці да гісторыі", + "preparingClip": "Падрыхтоўка кліпа…", + "preparingClipDesc": "Frigate злучае запісы за выбраны прамежак часу. Для доўгіх прамежкаў гэта можа заняць хвіліну.", + "startingCamera": "Запуск адладачнага паўтору…", + "startError": { + "title": "Не ўдалося запусціць адладачны паўтор", + "back": "Назад да гісторыі" + }, + "sourceCamera": "Зыходная камера", + "replayCamera": "Камера паўтору", + "initializingReplay": "Ініцыялізацыя адладачнага паўтору…", + "stoppingReplay": "Спыненне адладачнага паўтору…", + "stopReplay": "Спыніць паўтор", + "confirmStop": { + "title": "Спыніць адладачны паўтор?", + "description": "Гэта спыніць сеанс і выдаліць усе часовыя даныя. Сапраўды?", + "confirm": "Спыніць паўтор", + "cancel": "Скасаваць" + }, + "activity": "Актыўнасць", + "objects": "Спіс аб'ектаў", + "audioDetections": "Дэтэктаванні гуку", + "noActivity": "Актыўнасці не выяўлена", + "activeTracking": "Актыўнае адсочванне", + "noActiveTracking": "Актыўнага адсочвання няма", + "configuration": "Канфігурацыя", + "configurationDesc": "Дакладна наладзьце дэтэктаванне руху і адсочванне аб'ектаў для камеры адладачнага паўтору. Змены не захоўваюцца ў файл канфігурацыі Frigate." + } +} diff --git a/web/public/locales/be/views/search.json b/web/public/locales/be/views/search.json new file mode 100644 index 0000000000..16201ffa48 --- /dev/null +++ b/web/public/locales/be/views/search.json @@ -0,0 +1,73 @@ +{ + "search": "Пошук", + "savedSearches": "Захаваныя пошукі", + "searchFor": "Шукаць {{inputValue}}", + "button": { + "clear": "Ачысціць пошук", + "save": "Захаваць пошук", + "delete": "Выдаліць захаваны пошук", + "filterInformation": "Звесткі пра фільтры", + "filterActive": "Фільтры актыўныя" + }, + "trackedObjectId": "ID аб'екта пад адсочваннем", + "filter": { + "label": { + "cameras": "Камеры", + "labels": "Меткі", + "zones": "Зоны", + "sub_labels": "Падметкі", + "attributes": "Атрыбуты", + "search_type": "Тып пошуку", + "time_range": "Прамежак часу", + "before": "Да", + "after": "Пасля", + "min_score": "Мін. бал", + "max_score": "Макс. бал", + "min_speed": "Мін. хуткасць", + "max_speed": "Макс. хуткасць", + "recognized_license_plate": "Распазнаны нумарны знак", + "has_clip": "Мае кліп", + "has_snapshot": "Мае здымак" + }, + "searchType": { + "thumbnail": "Паменшаная выява", + "description": "Апісанне" + }, + "toast": { + "error": { + "beforeDateBeLaterAfter": "Дата «before» мусіць быць пазней за дату «after».", + "afterDatebeEarlierBefore": "Дата «after» мусіць быць раней за дату «before».", + "minScoreMustBeLessOrEqualMaxScore": "«min_score» мусіць быць меншым або роўным «max_score».", + "maxScoreMustBeGreaterOrEqualMinScore": "«max_score» мусіць быць большым або роўным «min_score».", + "minSpeedMustBeLessOrEqualMaxSpeed": "«min_speed» мусіць быць меншым або роўным «max_speed».", + "maxSpeedMustBeGreaterOrEqualMinSpeed": "«max_speed» мусіць быць большым або роўным «min_speed»." + } + }, + "tips": { + "title": "Як карыстацца тэкставымі фільтрамі", + "desc": { + "text": "Фільтры дапамагаюць звузіць вынікі пошуку. Вось як ужываць іх у полі ўводу:", + "step1": "Набярыце назву ключа фільтра і двукроп'е (напрыклад «cameras:»).", + "step2": "Выберыце значэнне з падказак або набярыце сваё.", + "step3": "Каб ужыць некалькі фільтраў, дадавайце іх адзін за адным праз прабел.", + "step4": "Фільтры па даце (before: і after:) выкарыстоўваюць фармат {{DateFormat}}.", + "step5": "Фільтр прамежку часу выкарыстоўвае фармат {{exampleTime}}.", + "step6": "Каб прыбраць фільтр, націсніце «x» побач з ім.", + "exampleLabel": "Прыклад:" + } + }, + "header": { + "currentFilterType": "Значэнні фільтра", + "noFilters": "Фільтры", + "activeFilters": "Актыўныя фільтры" + } + }, + "similaritySearch": { + "title": "Пошук па падабенстве", + "active": "Пошук па падабенстве актыўны", + "clear": "Ачысціць пошук па падабенстве" + }, + "placeholder": { + "search": "Пошук…" + } +} diff --git a/web/public/locales/be/views/settings.json b/web/public/locales/be/views/settings.json new file mode 100644 index 0000000000..af50cf9ea3 --- /dev/null +++ b/web/public/locales/be/views/settings.json @@ -0,0 +1,1991 @@ +{ + "menu": { + "system": "Сістэма", + "profiles": "Профілі", + "general": "Агульныя", + "globalConfig": "Глабальная канфігурацыя", + "integrations": "Інтэграцыі", + "cameras": "Канфігурацыя камер", + "ui": "Інтэрфейс", + "uiSettings": "Налады інтэрфейсу", + "globalDetect": "Дэтэктаванне аб'ектаў", + "globalRecording": "Запіс", + "globalSnapshots": "Здымкі", + "globalFfmpeg": "FFMPEG", + "globalMotion": "Дэтэктаванне руху", + "globalObjects": "Аб'екты", + "globalReview": "Разгляд", + "globalAudioEvents": "Дэтэктаванне гуку", + "globalLivePlayback": "Жывое прайграванне", + "globalTimestampStyle": "Стыль меткі часу", + "systemDatabase": "База даных", + "systemTls": "TLS", + "systemAuthentication": "Праверка сапраўднасці", + "systemNetworking": "Сетка", + "systemProxy": "Проксі", + "systemUi": "Інтэрфейс", + "systemLogging": "Рэгістрацыя", + "systemEnvironmentVariables": "Зменныя асяроддзя", + "systemTelemetry": "Тэлеметрыя", + "systemBirdseye": "Birdseye", + "systemFfmpeg": "FFMPEG", + "systemDetectorsAndModel": "Дэтэктары і мадэль", + "systemMqtt": "MQTT", + "systemGo2rtcStreams": "Плыні go2rtc", + "integrationSemanticSearch": "Семантычны пошук", + "integrationGenerativeAi": "Generative AI", + "integrationFaceRecognition": "Распазнаванне асобы", + "integrationLpr": "Распазнаванне нумарных знакаў", + "integrationObjectClassification": "Класіфікацыя аб'ектаў", + "integrationAudioTranscription": "Транскрыпцыя гуку", + "cameraDetect": "Дэтэктаванне аб'ектаў", + "cameraFfmpeg": "Плыні (FFmpeg)", + "cameraRecording": "Запіс", + "cameraSnapshots": "Здымкі", + "cameraMotion": "Дэтэктаванне руху", + "cameraObjects": "Аб'екты", + "cameraConfigReview": "Разгляд", + "cameraAudioEvents": "Дэтэктаванне гуку", + "cameraAudioTranscription": "Транскрыпцыя гуку", + "cameraNotifications": "Апавяшчэнні", + "cameraLivePlayback": "Жывое прайграванне", + "cameraBirdseye": "Birdseye", + "cameraFaceRecognition": "Распазнаванне асобы", + "cameraLpr": "Распазнаванне нумарных знакаў", + "cameraMqttConfig": "MQTT", + "cameraOnvif": "ONVIF", + "cameraUi": "Інтэрфейс камеры", + "cameraTimestampStyle": "Стыль меткі часу", + "cameraMqtt": "MQTT камеры", + "cameraManagement": "Кіраванне камерамі", + "cameraReview": "Разгляд", + "masksAndZones": "Маскі і зоны", + "motionTuner": "Наладка руху", + "enrichments": "Узбагачэнні", + "users": "Карыстальнікі", + "roles": "Ролі", + "notifications": "Апавяшчэнні", + "triggers": "Трыгеры", + "debug": "Адладка", + "frigateplus": "Frigate+", + "maintenance": "Абслугоўванне", + "mediaSync": "Сінхранізацыя медыя", + "regionGrid": "Сетка рэгіёнаў" + }, + "documentTitle": { + "default": "Налады - Frigate", + "authentication": "Налады праверкі сапраўднасці - Frigate", + "cameraManagement": "Кіраванне камерамі - Frigate", + "cameraReview": "Налады разгляду камеры - Frigate", + "enrichments": "Налады ўзбагачэнняў - Frigate", + "masksAndZones": "Рэдактар масак і зон - Frigate", + "motionTuner": "Наладка руху - Frigate", + "object": "Адладка - Frigate", + "general": "Налады інтэрфейсу - Frigate", + "globalConfig": "Глабальная канфігурацыя - Frigate", + "cameraConfig": "Канфігурацыя камеры - Frigate", + "frigatePlus": "Налады Frigate+ - Frigate", + "detectorsAndModel": "Дэтэктары і мадэль - Frigate", + "notifications": "Налады апавяшчэнняў - Frigate", + "maintenance": "Абслугоўванне - Frigate", + "profiles": "Профілі - Frigate" + }, + "button": { + "overriddenGlobal": "Перавызначана (глабальна)", + "overriddenGlobalTooltip": "Гэта камера перавызначае глабальныя налады ў гэтым раздзеле", + "overriddenGlobalHeading_one": "Гэта камера перавызначае {{count}} поле глабальнай канфігурацыі:", + "overriddenGlobalHeading_few": "Гэта камера перавызначае {{count}} палі глабальнай канфігурацыі:", + "overriddenGlobalHeading_many": "Гэта камера перавызначае {{count}} палёў глабальнай канфігурацыі:", + "overriddenGlobalNoDeltas": "Гэта камера перавызначае глабальную канфігурацыю, але значэнні палёў не адрозніваюцца.", + "overriddenBaseConfig": "Перавызначана (базавая канфігурацыя)", + "overriddenBaseConfigTooltip": "Профіль {{profile}} перавызначае налады ў гэтым раздзеле", + "overriddenBaseConfigHeading_one": "Профіль {{profile}} перавызначае {{count}} поле базавай канфігурацыі:", + "overriddenBaseConfigHeading_few": "Профіль {{profile}} перавызначае {{count}} палі базавай канфігурацыі:", + "overriddenBaseConfigHeading_many": "Профіль {{profile}} перавызначае {{count}} палёў базавай канфігурацыі:", + "overriddenBaseConfigNoDeltas": "Профіль {{profile}} перавызначае гэты раздзел, але значэнні палёў не адрозніваюцца ад базавай канфігурацыі.", + "overriddenInCameras": { + "label_one": "Перавызначана ў {{count}} камеры", + "label_few": "Перавызначана ў {{count}} камерах", + "label_many": "Перавызначана ў {{count}} камерах", + "tooltip_one": "{{count}} камера перавызначае значэнні ў гэтым раздзеле. Націсніце, каб убачыць падрабязнасці.", + "tooltip_few": "{{count}} камеры перавызначаюць значэнні ў гэтым раздзеле. Націсніце, каб убачыць падрабязнасці.", + "tooltip_many": "{{count}} камер перавызначаюць значэнні ў гэтым раздзеле. Націсніце, каб убачыць падрабязнасці.", + "heading_one": "У гэтым глабальным раздзеле ёсць палі, перавызначаныя ў {{count}} камеры.", + "heading_few": "У гэтым глабальным раздзеле ёсць палі, перавызначаныя ў {{count}} камерах.", + "heading_many": "У гэтым глабальным раздзеле ёсць палі, перавызначаныя ў {{count}} камерах.", + "othersField_one": "яшчэ {{count}}", + "othersField_few": "яшчэ {{count}}", + "othersField_many": "яшчэ {{count}}", + "profilePrefix": "профіль {{profile}}: {{fields}}" + } + }, + "menuDot": { + "overrideGlobal": "Гэты раздзел перавызначае глабальную канфігурацыю", + "overrideProfile": "Гэты раздзел перавызначаны профілем {{profile}}", + "unsaved": "У гэтым раздзеле ёсць незахаваныя змены" + }, + "dialog": { + "unsavedChanges": { + "title": "У вас ёсць незахаваныя змены.", + "desc": "Захаваць змены перад тым, як працягнуць?" + } + }, + "saveAllPreview": { + "title": "Змены, якія будуць захаваны", + "triggerLabel": "Праглядзець змены, што чакаюць", + "empty": "Няма змен, што чакаюць.", + "scope": { + "label": "Абсяг", + "global": "Глабальна", + "camera": "Камера: {{cameraName}}" + }, + "profile": { + "label": "Профіль" + }, + "field": { + "label": "Поле" + }, + "value": { + "label": "Новае значэнне", + "reset": "Скінуць" + } + }, + "cameraSetting": { + "camera": "Камера", + "noCamera": "Няма камеры" + }, + "general": { + "title": "Налады інтэрфейсу", + "liveDashboard": { + "title": "Панэль жывога прагляду", + "automaticLiveView": { + "label": "Аўтаматычны жывы прагляд", + "desc": "Аўтаматычна пераключацца на жывы прагляд камеры пры выяўленні актыўнасці. Пры адключэнні статычныя відарысы камер на панэлі жывога прагляду будуць абнаўляцца раз на хвіліну." + }, + "playAlertVideos": { + "label": "Прайграваць відэа абвестак", + "desc": "Апошнія абвесткі на панэлі жывога прагляду прадвызначана будуць прайгравацца як невялікія зацыкленыя відэа. Адключыце гэты параметр, каб на гэтай прыладзе або ў гэтым браўзеры паказваўся толькі статычны відарыс." + }, + "displayCameraNames": { + "label": "Заўсёды паказваць назвы камер", + "desc": "Заўсёды паказваць назвы камер на панэлі жывога прагляду з некалькімі камерамі." + }, + "liveFallbackTimeout": { + "label": "Тайм-аўт пераходу на рэзервовы плэер", + "desc": "Калі высакаякасная жывая плынь камеры недаступная, праз столькі секунд перайсці ў рэжым нізкай паласы прапускання. Прадвызначана: 3." + } + }, + "storedLayouts": { + "title": "Захаваныя раскладкі", + "desc": "Раскладку камер у групе можна перацягваць і змяняць памеры. Становішчы захоўваюцца ў лакальным сховішчы браўзера.", + "clearAll": "Ачысціць усе раскладкі" + }, + "cameraGroupStreaming": { + "title": "Налады трансляцыі груп камер", + "desc": "Налады трансляцыі для кожнай групы камер захоўваюцца ў лакальным сховішчы браўзера.", + "clearAll": "Ачысціць усе налады трансляцыі" + }, + "recordingsViewer": { + "title": "Прагляд запісаў", + "defaultPlaybackRate": { + "label": "Прадвызначаная хуткасць прайгравання", + "desc": "Прадвызначаная хуткасць прайгравання запісаў." + } + }, + "calendar": { + "title": "Каляндар", + "firstWeekday": { + "label": "Першы дзень тыдня", + "desc": "Дзень, з якога пачынаюцца тыдні ў календары разгляду.", + "sunday": "Нядзеля", + "monday": "Панядзелак" + } + }, + "toast": { + "success": { + "clearStoredLayout": "Захаваная раскладка для {{cameraName}} ачышчана", + "clearStreamingSettings": "Налады трансляцыі для ўсіх груп камер ачышчаны." + }, + "error": { + "clearStoredLayoutFailed": "Не ўдалося ачысціць захаваную раскладку: {{errorMessage}}", + "clearStreamingSettingsFailed": "Не ўдалося ачысціць налады трансляцыі: {{errorMessage}}" + } + } + }, + "enrichments": { + "title": "Налады ўзбагачэнняў", + "unsavedChanges": "Незахаваныя змены налад узбагачэнняў", + "birdClassification": { + "title": "Класіфікацыя птушак", + "desc": "Класіфікацыя птушак вызначае вядомых птушак праз квантаваную мадэль Tensorflow. Калі птушка распазнана, яе агульная назва дадаецца як sub_label. Гэтыя звесткі трапляюць у інтэрфейс, фільтры і апавяшчэнні." + }, + "semanticSearch": { + "title": "Семантычны пошук", + "desc": "Семантычны пошук у Frigate дазваляе знаходзіць аб'екты пад адсочваннем у элементах разгляду па самім відарысе, па тэкставым апісанні ад карыстальніка або па аўтаматычна створаным апісанні.", + "reindexNow": { + "label": "Пераіндэксаваць зараз", + "desc": "Пераіндэксацыя нанова створыць убудаванні для ўсіх аб'ектаў пад адсочваннем. Працэс ідзе ў фоне, можа моцна нагрузіць CPU і заняць значны час у залежнасці ад колькасці аб'ектаў.", + "confirmTitle": "Пацвердзіце пераіндэксацыю", + "confirmDesc": "Сапраўды пераіндэксаваць убудаванні ўсіх аб'ектаў пад адсочваннем? Працэс ідзе ў фоне, але можа моцна нагрузіць CPU і заняць значны час. Ход выканання відаць на старонцы агляду.", + "confirmButton": "Пераіндэксаваць", + "success": "Пераіндэксацыя пачата.", + "alreadyInProgress": "Пераіндэксацыя ўжо выконваецца.", + "error": "Не ўдалося пачаць пераіндэксацыю: {{errorMessage}}" + }, + "modelSize": { + "label": "Памер мадэлі", + "desc": "Памер мадэлі для ўбудаванняў семантычнага пошуку.", + "small": { + "title": "малы", + "desc": "Пры small выкарыстоўваецца квантаваная версія мадэлі, якая займае менш RAM і хутчэй працуе на CPU пры амаль незаўважнай розніцы ў якасці ўбудаванняў." + }, + "large": { + "title": "вялікі", + "desc": "Пры large выкарыстоўваецца поўная мадэль Jina, якая пры магчымасці аўтаматычна запускаецца на GPU." + } + } + }, + "faceRecognition": { + "title": "Распазнаванне асобы", + "desc": "Распазнаванне асобы дазваляе прысвойваць людзям імёны. Калі твар распазнаны, Frigate дадае імя чалавека як падметку. Гэтыя звесткі трапляюць у інтэрфейс, фільтры і апавяшчэнні.", + "modelSize": { + "label": "Памер мадэлі", + "desc": "Памер мадэлі для распазнавання асобы.", + "small": { + "title": "малы", + "desc": "Пры small выкарыстоўваецца мадэль убудаванняў твару FaceNet, якая эфектыўна працуе на большасці CPU." + }, + "large": { + "title": "вялікі", + "desc": "Пры large выкарыстоўваецца мадэль убудаванняў твару ArcFace, якая пры магчымасці аўтаматычна запускаецца на GPU." + } + } + }, + "licensePlateRecognition": { + "title": "Распазнаванне нумарных знакаў", + "desc": "Frigate можа распазнаваць нумарныя знакі транспартных сродкаў і аўтаматычна дадаваць распазнаныя сімвалы ў поле recognized_license_plate або вядомае імя як sub_label да аб'ектаў тыпу car. Тыповы выпадак - чытаць знакі аўтамабіляў, што заязджаюць на пад'езд, або праязджаюць па вуліцы." + }, + "restart_required": "Патрабуецца перазапуск (зменены налады ўзбагачэнняў)", + "toast": { + "success": "Налады ўзбагачэнняў захаваны. Перазапусціце Frigate, каб прымяніць змены.", + "error": "Не ўдалося захаваць змены канфігурацыі: {{errorMessage}}" + } + }, + "cameraWizard": { + "title": "Дадаць камеру", + "description": "Выканайце крокі ніжэй, каб дадаць новую камеру ў вашу ўсталёўку Frigate.", + "steps": { + "nameAndConnection": "Назва і падлучэнне", + "probeOrSnapshot": "Зандзіраванне або здымак", + "streamConfiguration": "Канфігурацыя плыні", + "validationAndTesting": "Праверка і тэставанне" + }, + "save": { + "success": "Новая камера {{cameraName}} захавана.", + "failure": "Памылка захавання {{cameraName}}." + }, + "testResultLabels": { + "resolution": "Разрозненне", + "video": "Відэа", + "audio": "Аўдыя", + "fps": "FPS" + }, + "commonErrors": { + "noUrl": "Укажыце сапраўдны URL плыні", + "testFailed": "Тэст плыні не ўдаўся: {{error}}" + }, + "step1": { + "description": "Увядзіце звесткі пра камеру і выберыце: зандзіраваць камеру ці ўручную выбраць вытворцу.", + "cameraName": "Назва камеры", + "cameraNamePlaceholder": "напрыклад front_door або Агляд двара", + "host": "Хост або IP-адрас", + "port": "Порт", + "username": "Імя карыстальніка", + "usernamePlaceholder": "Неабавязкова", + "password": "Пароль", + "passwordPlaceholder": "Неабавязкова", + "selectTransport": "Выберыце транспартны пратакол", + "cameraBrand": "Вытворца камеры", + "selectBrand": "Выберыце вытворцу камеры для шаблону URL", + "customUrl": "Уласны URL плыні", + "brandInformation": "Звесткі пра вытворцу", + "brandUrlFormat": "Для камер з фарматам RTSP URL: {{exampleUrl}}", + "customUrlPlaceholder": "rtsp://username:password@host:port/path", + "connectionSettings": "Налады падлучэння", + "detectionMethod": "Спосаб выяўлення плыняў", + "onvifPort": "Порт ONVIF", + "probeMode": "Зандзіраваць камеру", + "manualMode": "Выбар уручную", + "detectionMethodDescription": "Зандзіруйце камеру праз ONVIF (калі падтрымліваецца), каб знайсці URL плыняў, або ўручную выберыце вытворцу, каб ужыць загадзя вызначаныя URL. Каб увесці свой RTSP URL, выберыце ручны спосаб і пункт «Іншы».", + "onvifPortDescription": "Для камер з падтрымкай ONVIF гэта звычайна 80 або 8080.", + "useDigestAuth": "Выкарыстоўваць digest-аўтарызацыю", + "useDigestAuthDescription": "Выкарыстоўваць HTTP digest-аўтарызацыю для ONVIF. Некаторыя камеры патрабуюць асобных імя карыстальніка і пароля для ONVIF замест звычайнага адміністратара.", + "errors": { + "brandOrCustomUrlRequired": "Выберыце вытворцу камеры з хостам або IP, або выберыце «Іншы» і ўвядзіце свой URL", + "nameRequired": "Назва камеры абавязковая", + "nameLength": "Назва камеры мусіць мець не болей за 64 сімвалы", + "invalidCharacters": "Назва камеры ўтрымлівае недапушчальныя сімвалы", + "nameExists": "Камера з такой назвай ужо існуе", + "customUrlRtspRequired": "Уласныя URL мусяць пачынацца з «rtsp://» або «rtsps://». Для плыняў не праз RTSP патрэбна ручная наладка." + } + }, + "step2": { + "description": "Зандзіруйце камеру, каб знайсці даступныя плыні, або задайце налады ўручную ў залежнасці ад выбранага спосабу.", + "testSuccess": "Тэст падлучэння пройдзены!", + "testFailed": "Тэст падлучэння не пройдзены. Праверце ўведзеныя даныя і паспрабуйце зноў.", + "testFailedTitle": "Тэст не пройдзены", + "streamDetails": "Падрабязнасці плыні", + "probing": "Зандзіраванне камеры…", + "retry": "Паўтарыць", + "testing": { + "probingMetadata": "Зандзіраванне метаданых камеры…", + "fetchingSnapshot": "Атрыманне здымка камеры…" + }, + "probeFailed": "Не ўдалося зандзіраваць камеру: {{error}}", + "probingDevice": "Зандзіраванне прылады…", + "probeSuccessful": "Зандзіраванне пройдзена", + "probeError": "Памылка зандзіравання", + "probeNoSuccess": "Зандзіраванне не ўдалося", + "deviceInfo": "Звесткі пра прыладу", + "manufacturer": "Вытворца", + "model": "Мадэль", + "firmware": "Прашыўка", + "profiles": "Профілі", + "ptzSupport": "Падтрымка PTZ", + "autotrackingSupport": "Падтрымка аўтаадсочвання", + "presets": "Прэсэты", + "rtspCandidates": "Кандыдаты RTSP", + "rtspCandidatesDescription": "Пры зандзіраванні камеры знойдзены наступныя RTSP URL. Праверце падлучэнне, каб убачыць метаданыя плыні.", + "noRtspCandidates": "RTSP URL у камеры не знойдзены. Магчыма, даныя карыстальніка няправільныя, або камера не падтрымлівае ONVIF ці выкарыстаны спосаб атрымання RTSP URL. Вярніцеся назад і ўвядзіце RTSP URL уручную.", + "candidateStreamTitle": "Кандыдат {{number}}", + "useCandidate": "Выкарыстоўваць", + "uriCopy": "Капіяваць", + "uriCopied": "URI скапіяваны ў буфер абмену", + "testConnection": "Праверыць падлучэнне", + "toggleUriView": "Націсніце, каб паказаць або схаваць поўны URI", + "connected": "Падлучана", + "notConnected": "Не падлучана", + "errors": { + "hostRequired": "Патрабуецца хост або IP-адрас" + } + }, + "step3": { + "description": "Наладзьце ролі плыняў і дадайце дадатковыя плыні для вашай камеры.", + "streamsTitle": "Плыні камеры", + "addStream": "Дадаць плынь", + "addAnotherStream": "Дадаць яшчэ плынь", + "streamTitle": "Плынь {{number}}", + "streamUrl": "URL плыні", + "streamUrlPlaceholder": "rtsp://username:password@host:port/path", + "selectStream": "Выберыце плынь", + "searchCandidates": "Пошук кандыдатаў…", + "noStreamFound": "Плыняў не знойдзена", + "url": "URL-адрас", + "resolution": "Разрозненне", + "selectResolution": "Выберыце разрозненне", + "quality": "Якасць", + "selectQuality": "Выберыце якасць", + "roles": "Ролі", + "roleLabels": { + "detect": "Дэтэктаванне аб'ектаў", + "record": "Запіс", + "audio": "Аўдыя" + }, + "testStream": "Праверыць падлучэнне", + "testSuccess": "Тэст плыні пройдзены!", + "testFailed": "Тэст плыні не пройдзены", + "testFailedTitle": "Тэст не пройдзены", + "connected": "Падлучана", + "notConnected": "Не падлучана", + "featuresTitle": "Магчымасці", + "go2rtc": "Паменшыць колькасць падлучэнняў да камеры", + "detectRoleWarning": "Каб працягнуць, хаця б адна плынь мусіць мець ролю «detect».", + "rolesPopover": { + "title": "Ролі плыняў", + "detect": "Асноўная плынь для дэтэктавання аб'ектаў.", + "record": "Захоўвае сегменты відэаплыні паводле налад канфігурацыі.", + "audio": "Плынь для дэтэктавання па гуку." + }, + "featuresPopover": { + "title": "Магчымасці плыні", + "description": "Скарыстайцеся рэтрансляцыяй go2rtc, каб паменшыць колькасць падлучэнняў да камеры." + } + }, + "step4": { + "description": "Апошняя праверка і аналіз перад захаваннем новай камеры. Перад захаваннем падлучыце кожная плынь.", + "validationTitle": "Праверка плыняў", + "connectAllStreams": "Падлучыць усе плыні", + "reconnectionSuccess": "Перападключэнне выканана.", + "reconnectionPartial": "Некаторыя плыні не ўдалося перападключыць.", + "streamUnavailable": "Перадпрагляд плыні недаступны", + "reload": "Перазагрузіць", + "connecting": "Падлучэнне…", + "streamTitle": "Плынь {{number}}", + "valid": "Слушны", + "failed": "Не ўдалося", + "notTested": "Не правераны", + "connectStream": "Падлучыць", + "connectingStream": "Падлучэнне", + "disconnectStream": "Адлучыць", + "estimatedBandwidth": "Ацэненая паласа прапускання", + "roles": "Ролі", + "ffmpegModule": "Рэжым сумяшчальнасці плыні", + "ffmpegModuleDescription": "Калі плынь не загружаецца пасля некалькіх спроб, паспрабуйце ўключыць гэта. Тады Frigate будзе выкарыстоўваць модуль ffmpeg разам з go2rtc. Гэта можа палепшыць сумяшчальнасць з некаторымі плынямі камер.", + "none": "Няма", + "error": "Памылка", + "streamValidated": "Плынь {{number}} правераная", + "streamValidationFailed": "Плынь {{number}} не прайшла праверку", + "saveAndApply": "Захаваць новую камеру", + "saveError": "Памылковая канфігурацыя. Праверце налады.", + "issues": { + "title": "Праверка плыняў", + "videoCodecGood": "Відэакодэк: {{codec}}.", + "audioCodecGood": "Аўдыякодэк: {{codec}}.", + "resolutionHigh": "Разрозненне {{resolution}} можа павялічыць спажыванне рэсурсаў.", + "resolutionLow": "Разрозненне {{resolution}} можа быць занадта нізкім для надзейнага дэтэктавання дробных аб'ектаў.", + "resolutionUnknown": "Не ўдалося вызначыць разрозненне гэтай плыні. Задайце разрозненне дэтэктавання ўручную ў наладах або ў канфігурацыі.", + "noAudioWarning": "Для гэтай плыні гук не выяўлены, запісы будуць без гуку.", + "audioCodecRecordError": "Каб запісы мелі гук, патрабуецца аўдыякодэк AAC.", + "audioCodecRequired": "Каб дэтэктаваць гук, патрабуецца аўдыяплынь.", + "restreamingWarning": "Памяншэнне колькасці падлучэнняў да камеры для плыні запісу можа крыху павялічыць нагрузку на CPU.", + "brands": { + "reolink-rtsp": "RTSP ад Reolink не рэкамендуецца. Уключыце HTTP у наладах прашыўкі камеры і запусціце майстар нанова.", + "reolink-http": "Для плыняў Reolink па HTTP лепш выкарыстоўваць FFmpeg. Уключыце для гэтай плыні «Рэжым сумяшчальнасці плыні»." + }, + "dahua": { + "substreamWarning": "Падплынь 1 замацаваны на нізкім разрозненні. Многія камеры Dahua, Amcrest і EmpireTech падтрымліваюць дадатковыя падплыні, якія трэба ўключыць у наладах камеры. Пажадана праверыць іх наяўнасць і скарыстацца імі." + }, + "hikvision": { + "substreamWarning": "Падплынь 1 замацаваны на нізкім разрозненні. Многія камеры Hikvision падтрымліваюць дадатковыя падплыні, якія трэба ўключыць у наладах камеры. Пажадана праверыць іх наяўнасць і скарыстацца імі." + } + } + } + }, + "cameraManagement": { + "title": "Кіраванне камерамі", + "description": "Дадавайце, рэдагуйце і выдаляйце камеры, кіруйце станам кожнай і наладжвайце перавызначэнні па профілях і тыпе камеры. Каб наладзіць плыні, дэтэктаванне, рух і іншыя параметры камеры, выберыце адпаведны раздзел у канфігурацыі камеры.", + "addCamera": "Дадаць новую камеру", + "deleteCamera": "Выдаліць камеру", + "deleteCameraDialog": { + "title": "Выдаліць камеру", + "description": "Выдаленне камеры назаўсёды прыбярэ ўсе яе запісы, аб'екты пад адсочваннем і канфігурацыю. Звязаныя з ёй плыні go2rtc, магчыма, давядзецца прыбраць уручную.", + "selectPlaceholder": "Выберыце камеру…", + "confirmTitle": "Вы ўпэўнены?", + "confirmWarning": "Выдаленне {{cameraName}} нельга адрабіць.", + "deleteExports": "Таксама выдаліць экспарты гэтай камеры", + "confirmButton": "Выдаліць назаўсёды", + "success": "Камера {{cameraName}} выдалена", + "error": "Не ўдалося выдаліць камеру {{cameraName}}" + }, + "editCamera": "Рэдагаваць камеру:", + "selectCamera": "Выберыце камеру", + "backToSettings": "Назад да налад камеры", + "streams": { + "title": "Стан і звесткі камеры", + "label": "Стан камеры", + "description": "Задайце рабочы стан кожнай камеры.

    Укл.: плыні апрацоўваюцца як звычайна.
    Выкл.: апрацоўка часова прыпынена. Пасля перазапуску Frigate не захоўваецца.
    Адключана: апрацоўка спыняецца, і змена захоўваецца ў канфігурацыі. Каб зноў уключыць адключаную камеру, патрэбны перазапуск.

    Заўвага: адключэнне не ўплывае на рэтрансляцыі go2rtc.

    Перацягвайце маркер, каб змяніць парадак актыўных камер ва ўсім інтэрфейсе, у тым ліку на панэлі жывога прагляду і ў спісах выбару камер.", + "disabledSubheading": "Адключана ў канфігурацыі", + "status": { + "on": "Укл.", + "off": "Выкл.", + "disabled": "Адключана" + }, + "enableSuccess": "{{cameraName}} уключана. Перазапусціце Frigate, каб прымяніць.", + "disableSuccess": "{{cameraName}} адключана, змена захавана ў канфігурацыі.", + "reorderHandle": "Перацягніце, каб змяніць парадак", + "saving": "Захаванне…", + "saved": "Захавана", + "details": { + "edit": "Рэдагаваць звесткі камеры", + "title": "Рэдагаваць звесткі камеры", + "description": "Абнавіце назву для адлюстравання, знешні URL і бачнасць гэтай камеры ва ўсім інтэрфейсе Frigate.", + "friendlyNameLabel": "Назва для адлюстравання", + "friendlyNameHelp": "Зразумелая назва камеры ва ўсім інтэрфейсе Frigate. Пакіньце пустым, каб выкарыстоўваць ID камеры.", + "webuiUrlLabel": "URL вэб-інтэрфейсу камеры", + "webuiUrlHelp": "URL для пераходу да вэб-інтэрфейсу камеры непасрэдна з адладачнага выгляду. Пакіньце пустым, каб адключыць спасылку.", + "webuiUrlInvalid": "Мусіць быць сапраўдны URL (напрыклад https://example.com).", + "dashboardLabel": "Паказваць на панэлі жывога прагляду", + "dashboardHelp": "Паказваць гэту камеру на прадвызначанай панэлі «Усе камеры». Яна застаецца даступнай усюды, у тым ліку ў групах камер.", + "reviewLabel": "Паказваць у разглядзе", + "reviewHelp": "Паказваць гэту камеру ў разглядзе, у тым ліку ў фільтры камер, разглядзе руху і выглядзе гісторыі." + } + }, + "cameraConfig": { + "add": "Дадаць камеру", + "edit": "Рэдагаваць камеру", + "description": "Наладзьце параметры камеры, у тым ліку ўваходныя плыні і ролі.", + "name": "Назва камеры", + "nameRequired": "Назва камеры абавязковая", + "nameLength": "Назва камеры мусіць быць карацейшай за 64 сімвалы.", + "namePlaceholder": "напрыклад front_door або Агляд двара", + "enabled": "Уключана", + "ffmpeg": { + "inputs": "Уваходныя плыні", + "path": "Шлях плыні", + "pathRequired": "Патрабуецца шлях плыні", + "pathPlaceholder": "rtsp://…", + "roles": "Ролі", + "rolesRequired": "Патрабуецца хаця б адна роля", + "rolesUnique": "Кожную ролю (audio, detect, record) можна прызначыць толькі адной плыні", + "addInput": "Дадаць уваходная плынь", + "removeInput": "Прыбраць уваходная плынь", + "inputsRequired": "Патрабуецца хаця б адзін уваходная плынь" + }, + "go2rtcStreams": "Плыні go2rtc", + "streamUrls": "URL плыняў", + "addUrl": "Дадаць URL", + "addGo2rtcStream": "Дадаць плынь go2rtc", + "toast": { + "success": "Камера {{cameraName}} захавана" + } + }, + "profiles": { + "title": "Перавызначэнні камер у профілі", + "selectLabel": "Выберыце профіль", + "description": "Наладзьце, якія камеры ўключаюцца або выключаюцца пры ўключэнні профілю. Камеры са значэннем «Успадкаваць» захоўваюць свой прадвызначаны стан.", + "inherit": "Успадкаваць", + "on": "Укл.", + "off": "Выкл." + }, + "cameraType": { + "title": "Тып камеры", + "label": "Тып камеры", + "description": "Задайце тып кожнай камеры. Камеры, прызначаныя пад LPR, - гэта аднамэтавыя камеры з магутным аптычным маштабаваннем для здымкі нумарных знакаў далёкіх аўтамабіляў. Большасці камер падыдзе звычайны тып, калі камера не прызначана спецыяльна пад LPR і не наведзена ўшчыльную на нумарныя знакі.", + "normal": "Звычайны", + "dedicatedLpr": "Прызначаная пад LPR", + "saveSuccess": "Тып камеры {{cameraName}} абноўлены. Перазапусціце Frigate, каб прымяніць змены." + }, + "clone": { + "sectionTitle": "Скапіяваць налады", + "sectionDescription": "Скапіяваць канфігурацыю з адной камеры на іншую або на новую.", + "button": "Скапіяваць налады", + "title": "Скапіяваць налады камеры", + "description": "Скапіюйце канфігурацыю камеры на адну ці некалькі іншых камер або на новую. Ідэнтычнасць (назва, зразумелая назва, URL вэб-інтэрфейсу, парадак адлюстравання) ніколі не капіюецца.", + "source": { + "label": "Зыходная камера", + "placeholder": "Выберыце зыходную камеру", + "required": "Выберыце зыходную камеру" + }, + "target": { + "legend": "Мэта", + "newRadio": "Новая камера", + "newNameLabel": "Назва камеры", + "newNamePlaceholder": "напрыклад back_door або Заднія дзверы", + "newNameRequired": "Назва камеры абавязковая", + "newNameInvalid": "Памылковая назва камеры", + "newNameCollision": "Камера з такой назвай ужо існуе", + "newStreamsForced": "Для новай камеры плыні капіююцца заўсёды.", + "existingCamerasRadio": "Наяўныя камеры", + "allCameras": "Усе камеры", + "existingPlaceholder": "Выберыце хаця б адну камеру", + "existingDisabled": "Няма іншых камер для капіявання" + }, + "categories": { + "legend": "Налады для капіявання", + "description": "Выберыце, якія налады скапіяваць з зыходнай камеры.", + "selectAll": "Выбраць усе", + "selectNone": "Зняць увесь выбар", + "resetDefaults": "Скінуць да прадвызначаных", + "general": "Агульныя", + "spatial": "Прасторавыя налады", + "streams": "Плыні", + "spatialWarningTitle": "Неадпаведнасць разрознення", + "spatialWarning": "Разрозненне дэтэктавання зыходнай камеры {{srcCamera}} ({{srcWidth}}×{{srcHeight}}) адрозніваецца ад: {{cameras}}. Шматвугольнікі на тых камерах могуць не супасці. Прадвызначана гэтыя параметры выключаны: уключыце, каб скапіяваць як ёсць.", + "restartHint": "Патрабуецца перазапуск", + "items": { + "record": "Запіс", + "snapshots": "Здымкі", + "review": "Разгляд", + "motion": "Дэтэктаванне руху", + "objects": "Аб'екты", + "audio": "Дэтэктаванне гуку", + "audio_transcription": "Транскрыпцыя гуку", + "notifications": "Апавяшчэнні", + "birdseye": "Birdseye", + "mqtt": "MQTT", + "timestamp_style": "Стыль меткі часу", + "onvif": "ONVIF", + "lpr": "Распазнаванне нумарных знакаў", + "face_recognition": "Распазнаванне асобы", + "semantic_search": "Семантычны пошук", + "genai": "Generative AI", + "type": "Тып камеры (звычайная або прызначаная пад LPR)", + "profiles": "Профілі", + "detect": "Памеры дэтэктавання", + "zones": "Зоны", + "motion_mask": "Маскі руху", + "object_masks": "Маскі аб'ектаў", + "ffmpeg_live": "URL плыняў і ролі" + } + }, + "footer": { + "changeCount_one": "Будзе прымянена {{count}} змена", + "changeCount_few": "Будзе прымянена {{count}} змены", + "changeCount_many": "Будзе прымянена {{count}} змен", + "restartNeeded": "Для некаторых змен спатрэбіцца перазапуск.", + "liveOnly": "Усе змены прымяняцца адразу без перазапуску.", + "submit": "Клон", + "submitting": "Капіяванне…" + }, + "toast": { + "success": "Налады скапіяваны на {{cameraName}}", + "successWithRestart": "Налады скапіяваны на {{cameraName}}. Перазапусціце Frigate, каб прымяніць усе змены.", + "successMulti_one": "Налады скапіяваны на {{count}} камеру", + "successMulti_few": "Налады скапіяваны на {{count}} камеры", + "successMulti_many": "Налады скапіяваны на {{count}} камер", + "successMultiWithRestart_one": "Налады скапіяваны на {{count}} камеру. Перазапусціце Frigate, каб прымяніць усе змены.", + "successMultiWithRestart_few": "Налады скапіяваны на {{count}} камеры. Перазапусціце Frigate, каб прымяніць усе змены.", + "successMultiWithRestart_many": "Налады скапіяваны на {{count}} камер. Перазапусціце Frigate, каб прымяніць усе змены.", + "partialFailure": "Прыменена раздзелаў: {{successCount}}. Раздзел «{{failedSection}}» не ўдаўся: {{errorMessage}}", + "partialFailureMulti": "Скапіявана на камер: {{successCount}}. Не ўдалося для {{failed}}: {{errorMessage}}", + "newCameraPartialFailure": "Камера {{cameraName}} створана, але некаторыя налады не скапіяваліся: {{errorMessage}}", + "sourceMissing": "Зыходнай камеры больш не існуе", + "submitError": "Не ўдалося скапіяваць камеру: {{errorMessage}}" + } + } + }, + "cameraReview": { + "title": "Налады разгляду камеры", + "object_descriptions": { + "title": "Апісанні аб'ектаў ад Generative AI", + "desc": "Часова ўключыць або адключыць апісанні аб'ектаў ад Generative AI для гэтай камеры да перазапуску Frigate. Пры адключэнні апісанні для аб'ектаў пад адсочваннем на гэтай камеры не запытваюцца." + }, + "review_descriptions": { + "title": "Апісанні разгляду ад Generative AI", + "desc": "Часова ўключыць або адключыць апісанні разгляду ад Generative AI для гэтай камеры да перазапуску Frigate. Пры адключэнні апісанні для элементаў разгляду на гэтай камеры не запытваюцца." + }, + "review": { + "title": "Разгляд", + "desc": "Часова ўключыць або адключыць абвесткі і дэтэктаванні для гэтай камеры да перазапуску Frigate. Пры адключэнні новыя элементы разгляду не ствараюцца. ", + "alerts": "Абвесткі ", + "detections": "Дэтэктаванні " + }, + "reviewClassification": { + "title": "Класіфікацыя разгляду", + "desc": "Frigate падзяляе элементы разгляду на абвесткі і дэтэктаванні. Прадвызначана ўсе аб'екты person і car лічацца абвесткамі. Каб удакладніць падзел, задайце для іх патрэбныя зоны.", + "noDefinedZones": "Для гэтай камеры зоны не вызначаны.", + "objectAlertsTips": "Усе аб'екты {{alertsLabels}} на {{cameraName}} будуць паказвацца як абвесткі.", + "zoneObjectAlertsTips": "Усе аб'екты {{alertsLabels}}, выяўленыя ў зоне {{zone}} на {{cameraName}}, будуць паказвацца як абвесткі.", + "objectDetectionsTips": "Усе некатэгарызаваныя аб'екты {{detectionsLabels}} на {{cameraName}} будуць паказвацца як дэтэктаванні незалежна ад зоны.", + "zoneObjectDetectionsTips": { + "text": "Усе некатэгарызаваныя аб'екты {{detectionsLabels}} у зоне {{zone}} на {{cameraName}} будуць паказвацца як дэтэктаванні.", + "notSelectDetections": "Усе аб'екты {{detectionsLabels}}, выяўленыя ў зоне {{zone}} на {{cameraName}} і не аднесеныя да абвестак, будуць паказвацца як дэтэктаванні незалежна ад зоны.", + "regardlessOfZoneObjectDetectionsTips": "Усе некатэгарызаваныя аб'екты {{detectionsLabels}} на {{cameraName}} будуць паказвацца як дэтэктаванні незалежна ад зоны." + }, + "unsavedChanges": "Незахаваныя налады класіфікацыі разгляду для {{camera}}", + "selectAlertsZones": "Выберыце зоны для абвестак", + "selectDetectionsZones": "Выберыце зоны для дэтэктаванняў", + "limitDetections": "Абмежаваць дэтэктаванні пэўнымі зонамі", + "toast": { + "success": "Канфігурацыя класіфікацыі разгляду захавана. Перазапусціце Frigate, каб прымяніць змены." + } + } + }, + "masksAndZones": { + "filter": { + "all": "Усе маскі і зоны" + }, + "restart_required": "Патрабуецца перазапуск (зменены маскі або зоны)", + "disabledInConfig": "Элемент адключаны ў файле канфігурацыі", + "addDisabledProfile": "Спачатку дадайце ў базавую канфігурацыю, потым перавызначце ў профілі", + "profileBase": "(базавы)", + "profileOverride": "(перавызначэнне)", + "toast": { + "success": { + "copyCoordinates": "Каардынаты {{polyName}} скапіяваны ў буфер абмену." + }, + "error": { + "copyCoordinatesFailed": "Не ўдалося скапіяваць каардынаты ў буфер абмену." + } + }, + "motionMaskLabel": "Маска руху {{number}}", + "objectMaskLabel": "Маска аб'ектаў {{number}}", + "form": { + "id": { + "error": { + "mustNotBeEmpty": "ID не можа быць пустым.", + "alreadyExists": "Маска з такім ID для гэтай камеры ўжо існуе." + } + }, + "name": { + "error": { + "mustNotBeEmpty": "Назва не можа быць пустой." + } + }, + "zoneName": { + "error": { + "mustBeAtLeastTwoCharacters": "Назва зоны мусіць мець не меней за 2 сімвалы.", + "mustNotBeSameWithCamera": "Назва зоны не мусіць супадаць з назвай камеры.", + "alreadyExists": "Зона з такой назвай для гэтай камеры ўжо існуе.", + "mustNotContainPeriod": "Назва зоны не мусіць утрымліваць кропкі.", + "hasIllegalCharacter": "Назва зоны ўтрымлівае недапушчальныя сімвалы.", + "mustHaveAtLeastOneLetter": "Назва зоны мусіць мець хаця б адну літару." + } + }, + "distance": { + "error": { + "text": "Адлегласць мусіць быць не меншай за 0,1.", + "mustBeFilled": "Каб карыстацца ацэнкай хуткасці, трэба запоўніць усе палі адлегласці." + } + }, + "inertia": { + "error": { + "mustBeAboveZero": "Інерцыя мусіць быць большай за 0." + } + }, + "loiteringTime": { + "error": { + "mustBeGreaterOrEqualZero": "Час бадзяння мусіць быць не меншым за 0." + } + }, + "speed": { + "error": { + "mustBeGreaterOrEqualTo": "Парог хуткасці мусіць быць не меншым за 0,1." + } + }, + "polygonDrawing": { + "type": { + "zone": "зона", + "motion_mask": "маска руху", + "object_mask": "маска аб'ектаў" + }, + "removeLastPoint": "Прыбраць апошні пункт", + "reset": { + "label": "Ачысціць усе пункты" + }, + "snapPoints": { + "true": "Прывязваць пункты", + "false": "Не прывязваць пункты" + }, + "delete": { + "title": "Пацвердзіце выдаленне", + "desc": "Сапраўды выдаліць {{type}} {{name}}?", + "success": "{{name}} выдалена." + }, + "revertOverride": { + "title": "Вярнуцца да базавай канфігурацыі", + "desc": "Гэта прыбярэ перавызначэнне профілю для {{type}} {{name}} і верне базавую канфігурацыю." + }, + "error": { + "mustBeFinished": "Перад захаваннем трэба скончыць маляванне шматвугольніка." + } + } + }, + "zones": { + "label": "Зоны", + "documentTitle": "Рэдагаванне зоны - Frigate", + "desc": { + "title": "Зоны дазваляюць вызначыць пэўную вобласць кадра, каб знаць, ці знаходзіцца аб'ект у ёй.", + "documentation": "Дакументацыя" + }, + "add": "Дадаць зону", + "edit": "Рэдагаваць зону", + "point_one": "{{count}} пункт", + "point_few": "{{count}} пункты", + "point_many": "{{count}} пунктаў", + "clickDrawPolygon": "Націсніце, каб намаляваць шматвугольнік на відарысе.", + "name": { + "title": "Назва", + "inputPlaceHolder": "Увядзіце назву…", + "tips": "Назва мусіць мець не меней за 2 сімвалы і хаця б адну літару, і не мусіць супадаць з назвай камеры або іншай зоны на гэтай камеры." + }, + "enabled": { + "title": "Уключана", + "description": "Ці актыўная і ўключаная гэта зона ў файле канфігурацыі. Пры адключэнні яе нельга ўключыць праз MQTT. Адключаныя зоны ігнаруюцца падчас працы." + }, + "inertia": { + "title": "Інерцыя", + "desc": "Вызначае, колькі кадраў аб'ект мусіць прабыць у зоне, каб лічыцца ў ёй. Прадвызначана: 3" + }, + "loiteringTime": { + "title": "Час бадзяння", + "desc": "Задае мінімальны час у секундах, які аб'ект мусіць прабыць у зоне, каб яна спрацавала. Прадвызначана: 0" + }, + "objects": { + "title": "Аб'екты", + "desc": "Спіс аб'ектаў, якія датычацца гэтай зоны." + }, + "allObjects": "Усе аб'екты", + "speedEstimation": { + "title": "Ацэнка хуткасці", + "desc": "Уключыць ацэнку хуткасці аб'ектаў у гэтай зоне. Зона мусіць мець роўна 4 пункты.", + "lineADistance": "Даўжыня лініі A ({{unit}})", + "lineBDistance": "Даўжыня лініі B ({{unit}})", + "lineCDistance": "Даўжыня лініі C ({{unit}})", + "lineDDistance": "Даўжыня лініі D ({{unit}})" + }, + "speedThreshold": { + "title": "Парог хуткасці ({{unit}})", + "desc": "Задае мінімальную хуткасць, пры якой аб'екты лічацца ў гэтай зоне.", + "toast": { + "error": { + "pointLengthError": "Ацэнка хуткасці для гэтай зоны адключана. Зоны з ацэнкай хуткасці мусяць мець роўна 4 пункты.", + "loiteringTimeError": "Зоны з часам бадзяння больш за 0 не варта спалучаць з ацэнкай хуткасці." + } + } + }, + "toast": { + "success": "Зона ({{zoneName}}) захавана." + } + }, + "motionMasks": { + "label": "Маска руху", + "documentTitle": "Рэдагаванне маскі руху - Frigate", + "desc": { + "title": "Маскі руху не даюць непатрэбным тыпам руху запускаць дэтэктаванне. Празмернае маскіраванне ўскладніць адсочванне аб'ектаў.", + "documentation": "Дакументацыя" + }, + "add": "Новая маска руху", + "edit": "Рэдагаваць маску руху", + "defaultName": "Маска руху {{number}}", + "context": { + "title": "Маскі руху не даюць непатрэбным тыпам руху запускаць дэтэктаванне (напрыклад, галінам дрэў, метцы часу камеры). Карыстацца імі варта вельмі стрымана: празмернае маскіраванне ўскладніць адсочванне аб'ектаў." + }, + "point_one": "{{count}} пункт", + "point_few": "{{count}} пункты", + "point_many": "{{count}} пунктаў", + "clickDrawPolygon": "Націсніце, каб намаляваць шматвугольнік на відарысе.", + "name": { + "title": "Назва", + "description": "Неабавязковая зразумелая назва гэтай маскі руху.", + "placeholder": "Увядзіце назву…" + }, + "polygonAreaTooLarge": { + "title": "Маска руху пакрывае {{polygonArea}}% кадра камеры. Вялікія маскі руху не рэкамендуюцца.", + "tips": "Маскі руху не забараняюць дэтэктаванне аб'ектаў. Замест гэтага варта скарыстацца патрэбнай зонай." + }, + "toast": { + "success": { + "title": "{{polygonName}} захавана.", + "noName": "Маска руху захавана." + } + } + }, + "objectMasks": { + "label": "Маскі аб'ектаў", + "documentTitle": "Рэдагаванне маскі аб'ектаў - Frigate", + "desc": { + "title": "Маскі фільтра аб'ектаў адсейваюць памылковыя спрацоўванні для пэўнага тыпу аб'екта паводле месцазнаходжання.", + "documentation": "Дакументацыя" + }, + "add": "Дадаць маску аб'ектаў", + "edit": "Рэдагаваць маску аб'ектаў", + "context": "Маскі фільтра аб'ектаў адсейваюць памылковыя спрацоўванні для пэўнага тыпу аб'екта паводле месцазнаходжання.", + "point_one": "{{count}} пункт", + "point_few": "{{count}} пункты", + "point_many": "{{count}} пунктаў", + "clickDrawPolygon": "Націсніце, каб намаляваць шматвугольнік на відарысе.", + "name": { + "title": "Назва", + "description": "Неабавязковая зразумелая назва гэтай маскі аб'ектаў.", + "placeholder": "Увядзіце назву…" + }, + "objects": { + "title": "Аб'екты", + "desc": "Тып аб'екта, які датычыцца гэтай маскі аб'ектаў.", + "allObjectTypes": "Усе тыпы аб'ектаў" + }, + "toast": { + "success": { + "title": "{{polygonName}} захавана.", + "noName": "Маска аб'ектаў захавана." + } + } + }, + "masks": { + "enabled": { + "title": "Уключана", + "description": "Ці ўключана гэта маска ў файле канфігурацыі. Пры адключэнні яе нельга ўключыць праз MQTT. Адключаныя маскі ігнаруюцца падчас працы." + } + } + }, + "motionDetectionTuner": { + "title": "Наладка дэтэктавання руху", + "unsavedChanges": "Незахаваныя змены наладкі руху ({{camera}})", + "desc": { + "title": "Frigate выкарыстоўвае дэтэктаванне руху як першую праверку таго, ці адбываецца ў кадры нешта вартае дэтэктавання аб'ектаў.", + "documentation": "Чытаць даведнік па наладцы руху" + }, + "Threshold": { + "title": "Парог", + "desc": "Значэнне парога вызначае, наколькі мусіць змяніцца яркасць пікселя, каб гэта лічылася рухам. Прадвызначана: 30" + }, + "contourArea": { + "title": "Вобласць контуру", + "desc": "Значэнне вобласці контуру вызначае, якія групы змененых пікселяў лічацца рухам. Прадвызначана: 10" + }, + "improveContrast": { + "title": "Паляпшаць кантраснасць", + "desc": "Паляпшаць кантраснасць для цёмных сцэн. Прадвызначана: УКЛ" + }, + "toast": { + "success": "Налады руху захаваны." + } + }, + "debug": { + "title": "Адладка", + "detectorDesc": "Frigate выкарыстоўвае вашы дэтэктары ({{detectors}}), каб выяўляць аб'екты ў відэаплыні камеры.", + "desc": "Адладачны выгляд паказвае аб'екты пад адсочваннем і іх статыстыку ў рэальным часе. Спіс аб'ектаў паказвае зводку выяўленых аб'ектаў з затрымкай.", + "openCameraWebUI": "Адкрыць вэб-інтэрфейс {{camera}}", + "debugging": "Адладка", + "objectList": "Спіс аб'ектаў", + "noObjects": "Няма аб'ектаў", + "audio": { + "title": "Аўдыя", + "noAudioDetections": "Няма дэтэктаванняў гуку", + "score": "бал", + "currentRMS": "Бягучы RMS", + "currentdbFS": "Бягучы dbFS" + }, + "boundingBoxes": { + "title": "Абмяжавальныя прамавугольнікі", + "desc": "Паказваць абмяжавальныя прамавугольнікі вакол аб'ектаў пад адсочваннем", + "colors": { + "label": "Колеры абмяжавальных прамавугольнікаў аб'ектаў", + "info": "
  • Пры запуску кожнай метцы аб'екта прысвойваецца свой колер
  • Тонкая цёмна-сіняя лінія азначае, што аб'ект зараз не выяўляецца
  • Тонкая шэрая лінія азначае, што аб'ект вызначаны як нерухомы
  • Тоўстая лінія азначае, што аб'ект з'яўляецца мэтай аўтаадсочвання (калі яно ўключана)
  • " + } + }, + "timestamp": { + "title": "Метка часу", + "desc": "Накладаць метку часу на відарыс" + }, + "zones": { + "title": "Зоны", + "desc": "Паказваць контуры вызначаных зон" + }, + "mask": { + "title": "Маскі руху", + "desc": "Паказваць шматвугольнікі масак руху" + }, + "motion": { + "title": "Прамавугольнікі руху", + "desc": "Паказваць прамавугольнікі вакол вобласцей, дзе выяўлены рух", + "tips": "

    Прамавугольнікі руху


    Чырвоныя прамавугольнікі накладваюцца на вобласці кадра, дзе зараз выяўляецца рух

    " + }, + "regions": { + "title": "Рэгіёны", + "desc": "Паказваць прамавугольнік вобласці цікавасці, якая адпраўляецца дэтэктару аб'ектаў", + "tips": "

    Прамавугольнікі рэгіёнаў


    Яркія зялёныя прамавугольнікі накладваюцца на вобласці кадра, якія адпраўляюцца дэтэктару аб'ектаў.

    " + }, + "paths": { + "title": "Шляхі", + "desc": "Паказваць важныя пункты шляху аб'екта пад адсочваннем", + "tips": "

    Шляхі


    Лініі і кружкі паказваюць важныя пункты, праз якія аб'ект пад адсочваннем прайшоў за свой жыццёвы цыкл.

    " + }, + "objectShapeFilterDrawing": { + "title": "Маляванне фільтра формы аб'екта", + "desc": "Намалюйце прамавугольнік на відарысе, каб убачыць вобласць і суадносіны", + "tips": "Уключыце гэты параметр, каб маляваць прамавугольнік на відарысе камеры і бачыць яго вобласць і суадносіны. Гэтыя значэнні можна ўжыць для параметраў фільтра формы аб'екта ў канфігурацыі.", + "score": "Бал", + "ratio": "Суадносіны", + "area": "Вобласць" + } + }, + "timestampPosition": { + "tl": "Уверсе злева", + "tr": "Уверсе справа", + "bl": "Знізу злева", + "br": "Знізу справа" + }, + "users": { + "title": "Карыстальнікі", + "management": { + "title": "Кіраванне карыстальнікамі", + "desc": "Кіраванне ўліковымі запісамі карыстальнікаў гэтага асобніка Frigate." + }, + "addUser": "Дадаць карыстальніка", + "updatePassword": "Скінуць пароль", + "toast": { + "success": { + "createUser": "Карыстальнік {{user}} створаны", + "deleteUser": "Карыстальнік {{user}} выдалены", + "updatePassword": "Пароль абноўлены.", + "roleUpdated": "Роля для {{user}} абноўлена" + }, + "error": { + "setPasswordFailed": "Не ўдалося захаваць пароль: {{errorMessage}}", + "createUserFailed": "Не ўдалося стварыць карыстальніка: {{errorMessage}}", + "deleteUserFailed": "Не ўдалося выдаліць карыстальніка: {{errorMessage}}", + "roleUpdateFailed": "Не ўдалося абнавіць ролю: {{errorMessage}}" + } + }, + "table": { + "username": "Імя карыстальніка", + "actions": "Дзеянні", + "role": "Роля", + "noUsers": "Карыстальнікаў не знойдзена.", + "changeRole": "Змяніць ролю карыстальніка", + "password": "Скінуць пароль", + "deleteUser": "Выдаліць карыстальніка" + }, + "dialog": { + "form": { + "user": { + "title": "Імя карыстальніка", + "desc": "Дазволены толькі літары, лічбы, кропкі і падкрэсліванні.", + "placeholder": "Увядзіце імя карыстальніка" + }, + "password": { + "title": "Пароль", + "placeholder": "Увядзіце пароль", + "show": "Паказаць пароль", + "hide": "Схаваць пароль", + "confirm": { + "title": "Пацвердзіць пароль", + "placeholder": "Пацвердзіць пароль" + }, + "strength": { + "title": "Надзейнасць пароля: ", + "weak": "Слабы", + "medium": "Сярэдні", + "strong": "Надзейны", + "veryStrong": "Вельмі надзейны" + }, + "requirements": { + "title": "Патрабаванні да пароля:", + "length": "Не меней за 12 сімвалаў" + }, + "match": "Паролі супадаюць", + "notMatch": "Паролі не супадаюць" + }, + "newPassword": { + "title": "Новы пароль", + "placeholder": "Увядзіце новы пароль", + "confirm": { + "placeholder": "Паўтарыце новы пароль" + } + }, + "currentPassword": { + "title": "Бягучы пароль", + "placeholder": "Увядзіце бягучы пароль" + }, + "usernameIsRequired": "Патрабуецца імя карыстальніка", + "passwordIsRequired": "Патрабуецца пароль" + }, + "createUser": { + "title": "Стварыць новага карыстальніка", + "desc": "Дадайце новы ўліковы запіс і задайце ролю для доступу да раздзелаў інтэрфейсу Frigate.", + "usernameOnlyInclude": "Імя карыстальніка можа ўтрымліваць толькі літары, лічбы, . або _", + "confirmPassword": "Пацвердзіце пароль" + }, + "deleteUser": { + "title": "Выдаліць карыстальніка", + "desc": "Гэтае дзеянне нельга адрабіць. Уліковы запіс будзе выдалены назаўсёды разам з усімі звязанымі данымі.", + "warn": "Сапраўды выдаліць {{username}}?" + }, + "passwordSetting": { + "cannotBeEmpty": "Пароль не можа быць пустым", + "doNotMatch": "Паролі не супадаюць", + "currentPasswordRequired": "Патрабуецца бягучы пароль", + "incorrectCurrentPassword": "Бягучы пароль няправільны", + "passwordVerificationFailed": "Не ўдалося праверыць пароль", + "updatePassword": "Абнавіць пароль для {{username}}", + "setPassword": "Задаць пароль", + "desc": "Стварыце надзейны пароль, каб абараніць гэты ўліковы запіс.", + "multiDeviceWarning": "На ўсіх іншых прыладах, дзе вы ўвайшлі, спатрэбіцца ўвайсці нанова цягам {{refresh_time}}.", + "multiDeviceAdmin": "Можна таксама прымусіць усіх карыстальнікаў неадкладна прайсці праверку сапраўднасці нанова, змяніўшы сакрэт JWT." + }, + "changeRole": { + "title": "Змяніць ролю карыстальніка", + "select": "Выберыце ролю", + "desc": "Абнавіць дазволы для {{username}}", + "roleInfo": { + "intro": "Выберыце адпаведную ролю для гэтага карыстальніка:", + "admin": "Адміністратар", + "adminDesc": "Поўны доступ да ўсіх магчымасцей.", + "viewer": "Назіральнік", + "viewerDesc": "Толькі панэлі жывога прагляду, разгляд, агляд і экспарты.", + "customDesc": "Уласная роля з доступам да пэўных камер." + } + } + } + }, + "roles": { + "management": { + "title": "Кіраванне ролямі назіральнікаў", + "desc": "Кіраванне ўласнымі ролямі назіральнікаў і іх дазволамі на доступ да камер у гэтым асобніку Frigate." + }, + "addRole": "Дадаць ролю", + "table": { + "role": "Роля", + "cameras": "Камеры", + "actions": "Дзеянні", + "noRoles": "Уласных роляў не знойдзена.", + "editCameras": "Рэдагаваць камеры", + "deleteRole": "Выдаліць ролю" + }, + "toast": { + "success": { + "createRole": "Роля {{role}} створана", + "updateCameras": "Камеры для ролі {{role}} абноўлены", + "deleteRole": "Роля {{role}} выдалена", + "userRolesUpdated_one": "{{count}} карыстальніку з гэтай роляй прызначана роля «viewer», якая дае доступ да ўсіх камер.", + "userRolesUpdated_few": "{{count}} карыстальнікам з гэтай роляй прызначана роля «viewer», якая дае доступ да ўсіх камер.", + "userRolesUpdated_many": "{{count}} карыстальнікам з гэтай роляй прызначана роля «viewer», якая дае доступ да ўсіх камер." + }, + "error": { + "createRoleFailed": "Не ўдалося стварыць ролю: {{errorMessage}}", + "updateCamerasFailed": "Не ўдалося абнавіць камеры: {{errorMessage}}", + "deleteRoleFailed": "Не ўдалося выдаліць ролю: {{errorMessage}}", + "userUpdateFailed": "Не ўдалося абнавіць ролі карыстальнікаў: {{errorMessage}}" + } + }, + "dialog": { + "createRole": { + "title": "Стварыць новую ролю", + "desc": "Дадайце новую ролю і задайце дазволы на доступ да камер." + }, + "editCameras": { + "title": "Рэдагаваць камеры ролі", + "desc": "Абнавіць доступ да камер для ролі {{role}}." + }, + "deleteRole": { + "title": "Выдаліць ролю", + "desc": "Гэтае дзеянне нельга адрабіць. Роля будзе выдалена назаўсёды, а ўсім карыстальнікам з ёй будзе прызначана роля «viewer», якая дае доступ да ўсіх камер.", + "warn": "Сапраўды выдаліць {{role}}?", + "deleting": "Выдаленне…" + }, + "form": { + "role": { + "title": "Назва ролі", + "placeholder": "Увядзіце назву ролі", + "desc": "Дазволены толькі літары, лічбы, кропкі і падкрэсліванні.", + "roleIsRequired": "Патрабуецца назва ролі", + "roleOnlyInclude": "Назва ролі можа ўтрымліваць толькі літары, лічбы, . або _", + "roleExists": "Роля з такой назвай ужо існуе." + }, + "cameras": { + "title": "Камеры", + "desc": "Выберыце камеры, да якіх гэта роля мае доступ. Патрэбна хаця б адна камера.", + "required": "Трэба выбраць хаця б адну камеру." + } + } + } + }, + "notification": { + "title": "Апавяшчэнні", + "notificationSettings": { + "title": "Налады апавяшчэнняў", + "desc": "Frigate можа сам адпраўляць push-апавяшчэнні на вашу прыладу, калі працуе ў браўзеры або ўсталяваны як PWA." + }, + "notificationUnavailable": { + "title": "Апавяшчэнні недаступныя", + "desc": "Вэб-push-апавяшчэнні патрабуюць бяспечнага кантэксту (https://…). Гэта абмежаванне браўзера. Каб карыстацца апавяшчэннямі, адкрывайце Frigate па бяспечным пратаколе.", + "descPwa": "У iOS вэб-push-апавяшчэнні даступныя, толькі калі Frigate дададзены на хатні экран. Адкрыйце меню Абагуліць, выберыце На хатні экран, а потым адкрыйце Frigate праз новы значок, каб зарэгістраваць гэту прыладу для апавяшчэнняў." + }, + "globalSettings": { + "title": "Глабальныя налады", + "desc": "Часова прыпыніць апавяшчэнні для пэўных камер на ўсіх зарэгістраваных прыладах." + }, + "email": { + "title": "Эл. пошта", + "placeholder": "напрыклад example@email.com", + "desc": "Патрабуецца сапраўдны адрас эл. пошты: на яго паведамяць, калі з сэрвісам push узнікнуць праблемы." + }, + "cameras": { + "title": "Камеры", + "noCameras": "Няма даступных камер", + "desc": "Выберыце камеры, для якіх уключыць апавяшчэнні." + }, + "deviceSpecific": "Налады для гэтай прылады", + "registerDevice": "Зарэгістраваць гэту прыладу", + "unregisterDevice": "Скасаваць рэгістрацыю гэтай прылады", + "sendTestNotification": "Адправіць тэставае апавяшчэнне", + "unsavedRegistrations": "Незахаваныя рэгістрацыі апавяшчэнняў", + "unsavedChanges": "Незахаваныя змены апавяшчэнняў", + "active": "Апавяшчэнні актыўныя", + "suspended": "Апавяшчэнні прыпынены {{time}}", + "suspendTime": { + "suspend": "Прыпыніць", + "5minutes": "Прыпыніць на 5 хвілін", + "10minutes": "Прыпыніць на 10 хвілін", + "30minutes": "Прыпыніць на 30 хвілін", + "1hour": "Прыпыніць на 1 гадзіну", + "12hours": "Прыпыніць на 12 гадзін", + "24hours": "Прыпыніць на 24 гадзіны", + "untilRestart": "Прыпыніць да перазапуску" + }, + "cancelSuspension": "Адмяніць прыпыненне", + "toast": { + "success": { + "registered": "Рэгістрацыя для апавяшчэнняў выканана. Перад адпраўкай любых апавяшчэнняў (у тым ліку тэставага) трэба перазапусціць Frigate.", + "settingSaved": "Налады апавяшчэнняў захаваны." + }, + "error": { + "registerFailed": "Не ўдалося захаваць рэгістрацыю апавяшчэнняў." + } + } + }, + "frigatePlus": { + "title": "Налады Frigate+", + "description": "Frigate+ - гэта падпіска, якая дае доступ да дадатковых магчымасцей вашага асобніка Frigate, у тым ліку да ўласных мадэляў дэтэктавання аб'ектаў, навучаных на вашых даных. Тут можна кіраваць наладамі мадэлі Frigate+.", + "cardTitles": { + "api": "API", + "currentModel": "Бягучая мадэль", + "otherModels": "Іншыя мадэлі", + "configuration": "Канфігурацыя" + }, + "apiKey": { + "title": "Ключ API Frigate+", + "validated": "Ключ API Frigate+ выяўлены і правераны", + "notValidated": "Ключ API Frigate+ не выяўлены або не правераны", + "desc": "Ключ API Frigate+ уключае інтэграцыю з сэрвісам Frigate+.", + "plusLink": "Падрабязней пра Frigate+" + }, + "snapshotConfig": { + "title": "Канфігурацыя здымкаў", + "desc": "Каб адпраўляць у Frigate+, у канфігурацыі мусяць быць уключаны здымкі.", + "cleanCopyWarning": "У некаторых камер здымкі адключаны", + "table": { + "camera": "Камера", + "snapshots": "Здымкі" + } + }, + "modelInfo": { + "title": "Звесткі пра мадэль", + "modelType": "Тып мадэлі", + "trainDate": "Дата навучання", + "baseModel": "Базавая мадэль", + "plusModelType": { + "baseModel": "Базавая мадэль", + "userModel": "Дадаткова наладжаная" + }, + "supportedDetectors": "Падтрыманыя дэтэктары", + "cameras": "Камеры", + "loading": "Загрузка звестак пра мадэль…", + "error": "Не ўдалося загрузіць звесткі пра мадэль", + "noModelLoaded": "Зараз мадэль Frigate+ не загружана.", + "availableModels": "Даступныя мадэлі Frigate+", + "loadingAvailableModels": "Загрузка даступных мадэляў…", + "selectModel": "Выберыце мадэль", + "noModelsAvailable": "Няма даступных мадэляў", + "filter": { + "ariaLabel": "Фільтраваць мадэлі па тыпе", + "baseModels": "Базавыя мадэлі", + "fineTunedModels": "Дадаткова наладжаныя мадэлі" + }, + "modelSelect": "Тут можна выбраць вашы даступныя мадэлі на Frigate+. Улічыце, што выбраць можна толькі мадэлі, сумяшчальныя з бягучай канфігурацыяй дэтэктара." + }, + "changeInDetectorsAndModel": "Змяніць мадэль", + "unsavedChanges": "Незахаваныя змены налад Frigate+", + "restart_required": "Патрабуецца перазапуск (зменена мадэль Frigate+)", + "toast": { + "success": "Налады Frigate+ захаваны. Перазапусціце Frigate, каб прымяніць змены.", + "error": "Не ўдалося захаваць змены канфігурацыі: {{errorMessage}}" + } + }, + "detectorsAndModel": { + "title": "Дэтэктары і мадэль", + "description": "Наладзьце бэкенд дэтэктара, які запускае дэтэктаванне аб'ектаў, і мадэль, якую ён выкарыстоўвае. Змены захоўваюцца разам, каб дэтэктар і мадэль заставаліся ўзгодненымі.", + "cardTitles": { + "detector": "Абсталяванне дэтэктара", + "model": "Мадэль дэтэктавання" + }, + "tabs": { + "plus": "Frigate+", + "custom": "Уласная мадэль" + }, + "mismatch": { + "warning": "Бягучая мадэль Frigate+ «{{model}}» патрабуе дэтэктар {{required}}. Выберыце сумяшчальную мадэль ніжэй або пераключыцеся на ўласную мадэль перад захаваннем." + }, + "plusModel": { + "requiresDetector": "Патрабуе: {{detector}}", + "noModelSelected": "Выберыце мадэль Frigate+" + }, + "toast": { + "saveSuccess": "Налады дэтэктараў і мадэлі захаваны. Перазапусціце Frigate, каб прымяніць змены.", + "saveError": "Не ўдалося захаваць налады дэтэктара і мадэлі" + }, + "unsavedChanges": "Незахаваныя змены дэтэктара і мадэлі", + "restartRequired": "Патрабуецца перазапуск (зменены дэтэктар або мадэль)" + }, + "triggers": { + "documentTitle": "Трыгеры", + "semanticSearch": { + "title": "Семантычны пошук адключаны", + "desc": "Каб карыстацца трыгерамі, трэба ўключыць семантычны пошук." + }, + "management": { + "title": "Трыгеры", + "desc": "Кіраванне трыгерамі для {{camera}}. Тып «паменшаная выява» спрацоўвае на выявы, падобныя да выбранага аб'екта пад адсочваннем, а тып «апісанне» - на апісанні, падобныя да зададзенага тэксту." + }, + "addTrigger": "Дадаць трыгер", + "table": { + "name": "Назва", + "type": "Тып", + "content": "Змесціва", + "threshold": "Парог", + "actions": "Дзеянні", + "noTriggers": "Для гэтай камеры трыгеры не наладжаны.", + "edit": "Рэдагаваць", + "deleteTrigger": "Выдаліць трыгер", + "lastTriggered": "Апошняе спрацоўванне" + }, + "type": { + "thumbnail": "Паменшаная выява", + "description": "Апісанне" + }, + "actions": { + "notification": "Адправіць апавяшчэнне", + "sub_label": "Дадаць падметку", + "attribute": "Дадаць атрыбут" + }, + "dialog": { + "createTrigger": { + "title": "Стварыць трыгер", + "desc": "Стварыць трыгер для камеры {{camera}}" + }, + "editTrigger": { + "title": "Рэдагаваць трыгер", + "desc": "Змяніце налады трыгера на камеры {{camera}}" + }, + "deleteTrigger": { + "title": "Выдаліць трыгер", + "desc": "Сапраўды выдаліць трыгер {{triggerName}}? Гэтае дзеянне нельга адрабіць." + }, + "form": { + "name": { + "title": "Назва", + "placeholder": "Назавіце гэты трыгер", + "description": "Увядзіце ўнікальную назву або апісанне, каб пазнаваць гэты трыгер", + "error": { + "minLength": "Поле мусіць мець не меней за 2 сімвалы.", + "invalidCharacters": "Поле можа ўтрымліваць толькі літары, лічбы, падкрэсліванні і злучкі.", + "alreadyExists": "Трыгер з такой назвай для гэтай камеры ўжо існуе." + } + }, + "enabled": { + "description": "Уключыць або адключыць гэты трыгер" + }, + "type": { + "title": "Тып", + "placeholder": "Выберыце тып трыгера", + "description": "Спрацоўваць пры выяўленні падобнага апісання аб'екта пад адсочваннем", + "thumbnail": "Спрацоўваць пры выяўленні падобнай паменшанай выявы аб'екта пад адсочваннем" + }, + "content": { + "title": "Змесціва", + "imagePlaceholder": "Выберыце паменшаную выяву", + "textPlaceholder": "Увядзіце тэкставы змест", + "imageDesc": "Паказваюцца толькі 100 апошніх паменшаных выяў. Калі патрэбнай няма, знайдзіце ранейшыя аб'екты ў аглядзе і стварыце трыгер адтуль.", + "textDesc": "Увядзіце тэкст, каб гэта дзеянне спрацоўвала пры выяўленні падобнага апісання аб'екта пад адсочваннем.", + "error": { + "required": "Змест абавязковы." + } + }, + "threshold": { + "title": "Парог", + "desc": "Задайце парог падабенства для гэтага трыгера. Большы парог патрабуе больш дакладнага супадзення.", + "error": { + "min": "Парог мусіць быць не меншым за 0", + "max": "Парог мусіць быць не большым за 1" + } + }, + "actions": { + "title": "Дзеянні", + "desc": "Прадвызначана Frigate адпраўляе паведамленне MQTT для ўсіх трыгераў. Падметкі дадаюць назву трыгера да меткі аб'екта. Атрыбуты - гэта метаданыя з магчымасцю пошуку, якія захоўваюцца асобна ў метаданых аб'екта.", + "error": { + "min": "Трэба выбраць хаця б адно дзеянне." + } + } + } + }, + "wizard": { + "title": "Стварыць трыгер", + "step1": { + "description": "Наладзьце базавыя параметры трыгера." + }, + "step2": { + "description": "Задайце змест, які будзе запускаць гэта дзеянне." + }, + "step3": { + "description": "Наладзьце парог і дзеянні для гэтага трыгера." + }, + "steps": { + "nameAndType": "Назва і тып", + "configureData": "Наладка даных", + "thresholdAndActions": "Парог і дзеянні" + } + }, + "toast": { + "success": { + "createTrigger": "Трыгер {{name}} створаны.", + "updateTrigger": "Трыгер {{name}} абноўлены.", + "deleteTrigger": "Трыгер {{name}} выдалены." + }, + "error": { + "createTriggerFailed": "Не ўдалося стварыць трыгер: {{errorMessage}}", + "updateTriggerFailed": "Не ўдалося абнавіць трыгер: {{errorMessage}}", + "deleteTriggerFailed": "Не ўдалося выдаліць трыгер: {{errorMessage}}" + } + } + }, + "maintenance": { + "title": "Абслугоўванне", + "sync": { + "title": "Сінхранізацыя медыя", + "desc": "Frigate рэгулярна чысціць медыя паводле вашай канфігурацыі захоўвання. Некалькі асірацелых файлаў - гэта нармальна. Скарыстайцеся гэтай функцыяй, каб выдаліць з дыска асірацелыя медыяфайлы, на якія больш няма спасылак у базе даных.", + "started": "Сінхранізацыя медыя пачата.", + "alreadyRunning": "Задача сінхранізацыі ўжо выконваецца", + "error": "Не ўдалося пачаць сінхранізацыю", + "currentStatus": "Стан", + "jobId": "ID задачы", + "startTime": "Час пачатку", + "endTime": "Час заканчэння", + "statusLabel": "Стан", + "results": "Вынікі", + "errorLabel": "Памылка", + "mediaTypes": "Тыпы медыя", + "allMedia": "Усе медыя", + "dryRun": "Пробны запуск", + "dryRunEnabled": "Файлы не будуць выдалены", + "dryRunDisabled": "Файлы будуць выдалены", + "force": "Прымусова", + "forceDesc": "Абыйсці парог бяспекі і завяршыць сінхранізацыю, нават калі будзе выдалена больш за 50% файлаў.", + "verbose": "Падрабязна", + "verboseDesc": "Запісаць на дыск поўны спіс асірацелых файлаў для разгляду.", + "running": "Сінхранізацыя выконваецца…", + "start": "Пачаць сінхранізацыю", + "inProgress": "Сінхранізацыя выконваецца. Гэта старонка адключана.", + "status": { + "queued": "У чарзе", + "running": "Выконваецца", + "completed": "Завершана", + "failed": "Не ўдалося", + "notRunning": "Не выконваецца" + }, + "resultsFields": { + "filesChecked": "Праверана файлаў", + "orphansFound": "Знойдзена асірацелых", + "orphansDeleted": "Выдалена асірацелых", + "aborted": "Перарвана. Выдаленне перавысіла б парог бяспекі.", + "error": "Памылка", + "totals": "Усяго" + }, + "event_snapshots": "Здымкі аб'ектаў пад адсочваннем", + "event_thumbnails": "Паменшаныя выявы аб'ектаў пад адсочваннем", + "review_thumbnails": "Паменшаныя выявы разгляду", + "previews": "Перадпрагляды", + "exports": "Экспарты", + "recordings": "Запісы" + }, + "regionGrid": { + "title": "Сетка рэгіёнаў", + "desc": "Сетка рэгіёнаў - гэта аптымізацыя, якая вывучае, дзе ў полі зроку кожнай камеры звычайна з'яўляюцца аб'екты рознага памеру. Frigate выкарыстоўвае гэтыя даныя, каб эфектыўна падбіраць памер вобласцей дэтэктавання. Сетка будуецца аўтаматычна з часам па даных аб'ектаў пад адсочваннем.", + "clear": "Ачысціць сетку рэгіёнаў", + "clearConfirmTitle": "Ачысціць сетку рэгіёнаў", + "clearConfirmDesc": "Ачышчаць сетку рэгіёнаў не рэкамендуецца, калі толькі вы нядаўна не змянілі памер мадэлі дэтэктара або фізічнае становішча камеры і не сутыкаецеся з праблемамі адсочвання аб'ектаў. Сетка аўтаматычна адбудуецца з часам па меры адсочвання аб'ектаў. Каб змены ўступілі ў сілу, патрэбны перазапуск Frigate.", + "clearSuccess": "Сетка рэгіёнаў ачышчана", + "clearError": "Не ўдалося ачысціць сетку рэгіёнаў", + "restartRequired": "Каб змены сеткі рэгіёнаў уступілі ў сілу, патрэбны перазапуск" + } + }, + "configForm": { + "global": { + "title": "Глабальныя налады", + "description": "Гэтыя налады дзейнічаюць для ўсіх камер, калі не перавызначаны ў наладах канкрэтнай камеры." + }, + "camera": { + "title": "Налады камеры", + "description": "Гэтыя налады датычацца толькі гэтай камеры і перавызначаюць глабальныя.", + "noCameras": "Няма даступных камер" + }, + "advancedSettingsCount": "Пашыраныя налады ({{count}})", + "advancedCount": "Пашыраныя ({{count}})", + "showAdvanced": "Паказаць пашыраныя налады", + "tabs": { + "sharedDefaults": "Агульныя прадвызначаныя", + "system": "Сістэма", + "integrations": "Інтэграцыі" + }, + "additionalProperties": { + "keyLabel": "Клавіша", + "valueLabel": "Значэнне", + "keyPlaceholder": "Новы ключ", + "remove": "Прыбраць", + "providerNameLabel": "Назва правайдара", + "providerNamePlaceholder": "напрыклад openai", + "variableNameLabel": "Назва зменнай", + "variableNamePlaceholder": "напрыклад MY_VARIABLE", + "loggerNameLabel": "Назва журнала", + "loggerNamePlaceholder": "напрыклад frigate.record", + "keyPatternError": "Толькі літары, лічбы, злучкі і падкрэсліванні (без прабелаў)" + }, + "knownPlates": { + "namePlaceholder": "напрыклад Аўто жонкі", + "platePlaceholder": "Нумар знака або рэгулярны выраз" + }, + "liveStreams": { + "streamNameLabel": "Назва плыні", + "streamNamePlaceholder": "напрыклад Асноўны HD-плынь", + "go2rtcStreamLabel": "Плынь go2rtc", + "go2rtcStreamPlaceholder": "Выберыце плынь go2rtc", + "go2rtcStreamSearch": "Шукайце або ўвядзіце назву плыні…", + "noGo2rtcStreams": "Плыні go2rtc не наладжаны", + "availableStreams": "Даступныя плыні", + "useCustom": "Ужыць «{{value}}»", + "addStream": "Дадаць плынь" + }, + "timezone": { + "defaultOption": "Выкарыстоўваць часавы пояс браўзера" + }, + "roleMap": { + "empty": "Няма супастаўленняў роляў", + "roleLabel": "Роля", + "groupsLabel": "Групы", + "addMapping": "Дадаць супастаўленне ролі", + "remove": "Прыбраць" + }, + "ffmpegArgs": { + "preset": "Прэсет", + "manual": "Аргументы ўручную", + "inherit": "Успадкаваць з налады камеры", + "none": "Няма", + "useGlobalSetting": "Успадкаваць з глабальнай налады", + "selectPreset": "Выберыце прэсет", + "manualPlaceholder": "Увядзіце аргументы FFmpeg", + "presetLabels": { + "preset-rpi-64-h264": "Raspberry Pi (H.264)", + "preset-rpi-64-h265": "Raspberry Pi (H.265)", + "preset-vaapi": "VAAPI (GPU Intel/AMD)", + "preset-intel-qsv-h264": "Intel QuickSync (H.264)", + "preset-intel-qsv-h265": "Intel QuickSync (H.265)", + "preset-nvidia": "GPU NVIDIA", + "preset-jetson-h264": "NVIDIA Jetson (H.264)", + "preset-jetson-h265": "NVIDIA Jetson (H.265)", + "preset-rkmpp": "Rockchip RKMPP", + "preset-http-jpeg-generic": "HTTP JPEG (агульны)", + "preset-http-mjpeg-generic": "HTTP MJPEG (агульны)", + "preset-http-reolink": "HTTP - камеры Reolink", + "preset-rtmp-generic": "RTMP (агульны)", + "preset-rtsp-generic": "RTSP (агульны)", + "preset-rtsp-restream": "RTSP - рэтрансляцыя з go2rtc", + "preset-rtsp-restream-low-latency": "RTSP - рэтрансляцыя з go2rtc (нізкая затрымка)", + "preset-rtsp-udp": "RTSP - UDP", + "preset-rtsp-blue-iris": "RTSP - Blue Iris", + "preset-record-generic": "Запіс (агульны, без гуку)", + "preset-record-generic-audio-copy": "Запіс (агульны + капіяванне гуку)", + "preset-record-generic-audio-aac": "Запіс (агульны + гук у AAC)", + "preset-record-mjpeg": "Запіс - камеры MJPEG", + "preset-record-jpeg": "Запіс - камеры JPEG", + "preset-record-ubiquiti": "Запіс - камеры Ubiquiti" + } + }, + "cameraInputs": { + "itemTitle": "Плынь {{index}}", + "sourceMode": { + "restream": "Рэтрансляцыя (go2rtc)", + "manual": "Уваходны шлях уручную", + "go2rtcStreamLabel": "Плынь go2rtc", + "go2rtcStreamPlaceholder": "Выберыце плынь go2rtc", + "noGo2rtcStreams": "Плыні go2rtc не наладжаны", + "go2rtcStreamSearch": "Пошук плыняў…", + "availableStreams": "Даступныя плыні", + "noMatchingStreams": "Няма плыняў, якія адпавядаюць запыту" + } + }, + "restartRequiredField": "Патрабуецца перазапуск", + "restartRequiredFooter": "Канфігурацыя зменена - патрабуецца перазапуск", + "sections": { + "detect": "Дэтэктаванне", + "record": "Запіс", + "snapshots": "Здымкі", + "motion": "Рух", + "objects": "Аб'екты", + "review": "Разгляд", + "audio": "Аўдыя", + "notifications": "Апавяшчэнні", + "live": "Жывы прагляд", + "timestamp_style": "Меткі часу", + "mqtt": "MQTT", + "database": "База даных", + "telemetry": "Тэлеметрыя", + "auth": "Праверка сапраўднасці", + "tls": "TLS", + "proxy": "Проксі", + "go2rtc": "go2rtc", + "ffmpeg": "FFMPEG", + "detectors": "Дэтэктары", + "model": "Мадэль", + "semantic_search": "Семантычны пошук", + "genai": "GenAI", + "face_recognition": "Распазнаванне асобы", + "lpr": "Распазнаванне нумарных знакаў", + "birdseye": "Birdseye", + "masksAndZones": "Маскі і зоны" + }, + "detect": { + "title": "Налады дэтэктавання" + }, + "detectors": { + "title": "Налады дэтэктара", + "singleType": "Дазволены толькі адзін дэтэктар тыпу {{type}}.", + "keyRequired": "Патрабуецца назва дэтэктара.", + "keyDuplicate": "Дэтэктар з такой назвай ужо існуе.", + "noSchema": "Схемы дэтэктараў недаступныя.", + "none": "Асобнікі дэтэктараў не наладжаны.", + "add": "Дадаць дэтэктар", + "addCustomKey": "Дадаць уласны ключ" + }, + "record": { + "title": "Налады запісу" + }, + "snapshots": { + "title": "Налады здымкаў" + }, + "motion": { + "title": "Налады руху" + }, + "objects": { + "title": "Налады аб'ектаў" + }, + "audioLabels": { + "summary": "Выбрана {{count}} метка гуку", + "empty": "Няма даступных метак гуку" + }, + "objectLabels": { + "summary": "Выбран {{count}} тып аб'ектаў", + "empty": "Няма даступных метак аб'ектаў" + }, + "reviewLabels": { + "summary": "Выбрана {{count}} метка", + "empty": "Няма даступных метак" + }, + "filters": { + "objectFieldLabel": "{{field}} для {{label}}" + }, + "zoneNames": { + "summary": "Выбрана: {{count}}", + "empty": "Няма даступных зон" + }, + "inputRoles": { + "summary": "Выбрана {{count}} роля", + "empty": "Няма даступных роляў", + "options": { + "detect": "Дэтэктаваць", + "record": "Запіс", + "audio": "Аўдыя" + } + }, + "genaiRoles": { + "options": { + "embeddings": "Убудаванні", + "descriptions": "Апісанні", + "chat": "Чат" + } + }, + "semanticSearchModel": { + "placeholder": "Выберыце мадэль…", + "builtIn": "Убудаваныя мадэлі", + "genaiProviders": "Правайдары GenAI" + }, + "semanticSearchModelSize": { + "notApplicable": "Не дастасоўваецца да правайдараў GenAI" + }, + "review": { + "title": "Налады разгляду" + }, + "audio": { + "title": "Налады гуку" + }, + "notifications": { + "title": "Налады апавяшчэнняў" + }, + "live": { + "title": "Налады жывога прагляду" + }, + "timestamp_style": { + "title": "Налады меткі часу" + }, + "searchPlaceholder": "Пошук…", + "addCustomLabel": "Дадаць уласную метку…", + "genaiModel": { + "placeholder": "Выберыце або ўвядзіце мадэль…", + "search": "Шукайце або ўвядзіце мадэль…", + "noModels": "Няма даступных мадэляў", + "available": "Даступныя мадэлі", + "useCustom": "Ужыць «{{value}}»", + "refresh": "Абнавіць спіс мадэляў", + "probeFailed": "Не ўдалося апытаць мадэлі", + "fetchedModels": "Спіс мадэляў атрыманы" + }, + "ptzPresets": { + "placeholder": "Выберыце або ўвядзіце прэсет…", + "search": "Шукайце або ўвядзіце прэсет…", + "noPresets": "Няма даступных прэсетаў", + "available": "Прэсеты камеры", + "useCustom": "Ужыць «{{value}}»" + }, + "defaultRole": { + "admin": "Адміністратар", + "viewer": "Назіральнік" + } + }, + "globalConfig": { + "title": "Глабальная канфігурацыя", + "description": "Наладзьце глабальныя параметры, якія дзейнічаюць для ўсіх камер, калі не перавызначаны.", + "toast": { + "success": "Глабальныя налады захаваны", + "error": "Не ўдалося захаваць глабальныя налады", + "validationError": "Праверка не пройдзена" + } + }, + "cameraConfig": { + "title": "Канфігурацыя камеры", + "description": "Наладзьце параметры асобных камер. Налады перавызначаюць глабальныя прадвызначаныя значэнні.", + "overriddenBadge": "Перавызначана", + "resetToGlobal": "Скінуць да глабальнага", + "toast": { + "success": "Налады камеры захаваны", + "error": "Не ўдалося захаваць налады камеры" + } + }, + "toast": { + "success": "Налады захаваны", + "applied": "Налады прыменены", + "successRestartRequired": "Налады захаваны. Перазапусціце Frigate, каб прымяніць змены.", + "error": "Не ўдалося захаваць налады", + "validationError": "Праверка не пройдзена: {{message}}", + "resetSuccess": "Скінута да глабальных прадвызначаных значэнняў", + "resetError": "Не ўдалося скінуць налады", + "saveAllSuccess_one": "Захаваны {{count}} раздзел.", + "saveAllSuccess_few": "Захавана {{count}} раздзелы.", + "saveAllSuccess_many": "Захавана ўсе {{count}} раздзелаў.", + "saveAllSuccessRestartRequired_one": "Захаваны {{count}} раздзел. Перазапусціце Frigate, каб прымяніць змены.", + "saveAllSuccessRestartRequired_few": "Захавана {{count}} раздзелы. Перазапусціце Frigate, каб прымяніць змены.", + "saveAllSuccessRestartRequired_many": "Захавана ўсе {{count}} раздзелаў. Перазапусціце Frigate, каб прымяніць змены.", + "saveAllPartial_one": "Захаваны {{successCount}} з {{totalCount}} раздзела. Не ўдалося: {{failCount}}.", + "saveAllPartial_few": "Захавана {{successCount}} з {{totalCount}} раздзелаў. Не ўдалося: {{failCount}}.", + "saveAllPartial_many": "Захавана {{successCount}} з {{totalCount}} раздзелаў. Не ўдалося: {{failCount}}.", + "saveAllFailure": "Не ўдалося захаваць усе раздзелы." + }, + "profiles": { + "title": "Профілі", + "activeProfile": "Актыўны профіль", + "noActiveProfile": "Няма актыўнага профілю", + "active": "Актыўны", + "activated": "Профіль «{{profile}}» уключаны", + "activateFailed": "Не ўдалося задаць профіль", + "deactivated": "Профіль выключаны", + "noProfiles": "Профілі не вызначаны.", + "noOverrides": "Няма перавызначэнняў", + "cameraCount_one": "{{count}} камера", + "cameraCount_few": "{{count}} камеры", + "cameraCount_many": "{{count}} камер", + "columnCamera": "Камера", + "columnOverrides": "Перавызначэнні профілю", + "baseConfig": "Базавая канфігурацыя", + "addProfile": "Дадаць профіль", + "newProfile": "Новы профіль", + "profileNamePlaceholder": "напрыклад: Ахова, Ад'езд, Начны рэжым", + "friendlyNameLabel": "Назва профілю", + "profileIdLabel": "ID профілю", + "profileIdDescription": "Унутраны ідэнтыфікатар, які выкарыстоўваецца ў канфігурацыі і аўтаматызацыях", + "nameInvalid": "Дазволены толькі малыя літары, лічбы і падкрэсліванні", + "nameDuplicate": "Профіль з такой назвай ужо існуе", + "error": { + "mustBeAtLeastTwoCharacters": "Мусіць мець не меней за 2 сімвалы", + "mustNotContainPeriod": "Не мусіць утрымліваць кропкі", + "alreadyExists": "Профіль з такім ID ужо існуе" + }, + "renameProfile": "Перайменаваць профіль", + "renameSuccess": "Профіль перайменаваны на «{{profile}}»", + "deleteProfile": "Выдаліць профіль", + "deleteProfileConfirm": "Выдаліць профіль «{{profile}}» з усіх камер? Гэта нельга адрабіць.", + "deleteSuccess": "Профіль «{{profile}}» выдалены", + "createSuccess": "Профіль «{{profile}}» створаны", + "removeOverride": "Прыбраць перавызначэнне профілю", + "deleteSection": "Выдаліць перавызначэнні раздзела", + "deleteSectionConfirm": "Прыбраць перавызначэнні раздзела {{section}} для профілю {{profile}} на {{camera}}?", + "deleteSectionSuccess": "Перавызначэнні раздзела {{section}} для {{profile}} прыбраны", + "enableSwitch": "Уключыць профілі", + "enabledDescription": "Профілі ўключаны. Стварыце новы профіль ніжэй, перайдзіце ў раздзел канфігурацыі камеры, унясіце змены і захавайце, каб яны ўступілі ў сілу.", + "disabledDescription": "Профілі дазваляюць вызначаць найменаваныя наборы перавызначэнняў канфігурацыі камеры (напрыклад, ахова, ад'езд, ноч), якія можна ўключаць пры патрэбе." + }, + "unsavedChanges": "У вас ёсць незахаваныя змены", + "confirmReset": "Пацвердзіце скід", + "resetToDefaultDescription": "Гэта скіне ўсе налады ў гэтым раздзеле да прадвызначаных значэнняў. Дзеянне нельга адрабіць.", + "resetToGlobalDescription": "Гэта скіне налады ў гэтым раздзеле да глабальных прадвызначаных значэнняў. Дзеянне нельга адрабіць.", + "go2rtcStreams": { + "title": "Плыні go2rtc", + "description": "Кіраванне канфігурацыямі плыняў go2rtc для рэтрансляцыі камер. Кожная плынь мае назву і адзін або некалькі зыходных URL.", + "addStream": "Дадаць плынь", + "addStreamDesc": "Увядзіце назву новай плыні. Гэта назва будзе выкарыстоўвацца ў канфігурацыі камеры.", + "addUrl": "Дадаць URL", + "sourceNumber": "Крыніца {{index}}", + "streamName": "Назва плыні", + "streamNamePlaceholder": "напрыклад front_door", + "streamUrlPlaceholder": "напрыклад rtsp://user:pass@192.168.1.100/stream", + "deleteStream": "Выдаліць плынь", + "deleteStreamConfirm": "Сапраўды выдаліць плынь «{{streamName}}»? Камеры, якія на яго спасылаюцца, могуць перастаць працаваць.", + "noStreams": "Плыні go2rtc не наладжаны. Дадайце плынь, каб пачаць.", + "validation": { + "nameRequired": "Патрабуецца назва плыні", + "nameDuplicate": "Плынь з такой назвай ужо існуе", + "nameInvalid": "Назва плыні можа ўтрымліваць толькі літары, лічбы, падкрэсліванні і злучкі", + "urlRequired": "Патрабуецца хаця б адзін URL" + }, + "renameStream": "Перайменаваць плынь", + "renameStreamDesc": "Увядзіце новую назву гэтай плыні. Перайменаванне можа парушыць працу камер або іншых плыняў, якія спасылаюцца на яго па назве.", + "newStreamName": "Новая назва плыні", + "ffmpeg": { + "useFfmpegModule": "Рэжым сумяшчальнасці (ffmpeg)", + "video": "Відэа", + "audio": "Аўдыя", + "hardware": "Апаратнае паскарэнне", + "videoCopy": "Капіяваць", + "videoH264": "Перакадаваць у H.264", + "videoH265": "Перакадаваць у H.265", + "videoExclude": "Выключыць", + "audioCopy": "Капіяваць", + "audioAac": "Перакадаваць у AAC", + "audioOpus": "Перакадаваць у Opus", + "audioPcmu": "Перакадаваць у PCM μ-law", + "audioPcma": "Перакадаваць у PCM A-law", + "audioPcm": "Перакадаваць у PCM", + "audioMp3": "Перакадаваць у MP3", + "audioExclude": "Выключыць", + "hardwareNone": "Без апаратнага паскарэння", + "hardwareAuto": "Аўтаматычна (рэкамендуецца)", + "hardwareVaapi": "VAAPI", + "hardwareCuda": "CUDA", + "hardwareV4l2m2m": "V4L2 M2M", + "hardwareDxva2": "DXVA2", + "hardwareVideotoolbox": "VideoToolbox", + "addVideoCodec": "Дадаць відэакодэк", + "addAudioCodec": "Дадаць аўдыякодэк", + "removeCodec": "Прыбраць кодэк" + } + }, + "birdseye": { + "trackingMode": { + "objects": "Аб'екты", + "motion": "Рух", + "continuous": "Бесперапынна" + }, + "cameraOrder": { + "label": "Парадак камер", + "description": "Перацягвайце камеры, каб задаць іх парадак у раскладцы Birdseye.", + "reorderHandle": "Перацягніце, каб змяніць парадак", + "saving": "Захаванне…", + "saved": "Захавана" + } + }, + "retainMode": { + "all": "Усе", + "motion": "Рух", + "active_objects": "Актыўныя аб'екты" + }, + "previewQuality": { + "very_high": "Вельмі высокая", + "high": "Высокі", + "medium": "Сярэдні", + "low": "Нізкі", + "very_low": "Вельмі нізкая" + }, + "ui": { + "timeFormat": { + "browser": "Браўзер", + "12hour": "12 гадзін", + "24hour": "24 гадзіны" + }, + "unitSystem": { + "metric": "Метрычная", + "imperial": "Імперская" + } + }, + "review": { + "imageSource": { + "recordings": "Запісы", + "previews": "Перадпрагляды" + } + }, + "logger": { + "logLevel": { + "debug": "Debug", + "info": "Звесткі", + "warning": "Папярэджанне", + "error": "Памылка", + "critical": "Critical" + } + }, + "onvif": { + "profileAuto": "Аўта", + "profileLoading": "Загрузка профіляў…", + "autotracking": { + "zooming": { + "disabled": "Адключана", + "absolute": "Абсалютнае", + "relative": "Адноснае" + } + } + }, + "modelSize": { + "small": "Малы", + "large": "Вялікі" + }, + "configMessages": { + "review": { + "recordDisabled": "Запіс адключаны, элементы разгляду не будуць стварацца.", + "detectDisabled": "Дэтэктаванне аб'ектаў адключана. Каб адрозніваць абвесткі і дэтэктаванні, элементам разгляду патрэбны выяўленыя аб'екты.", + "allNonAlertDetections": "Уся актыўнасць, што не з'яўляецца абвесткай, будзе ўключана як дэтэктаванні.", + "genaiImageSourceRecordingsRecordDisabled": "Крыніца відарысаў зададзена як «recordings», але запіс адключаны. Frigate вернецца да відарысаў перадпрагляду." + }, + "audio": { + "noAudioRole": "Ніводнай плыні не прызначана роля «audio». Каб дэтэктаванне гуку працавала, трэба ўключыць гэтую ролю." + }, + "audioTranscription": { + "audioDetectionDisabled": "Для гэтай камеры не ўключана дэтэктаванне гуку. Транскрыпцыя гуку патрабуе актыўнага дэтэктавання гуку." + }, + "detect": { + "fpsGreaterThanFive": "Задаваць FPS дэтэктавання вышэй за 5 не рэкамендуецца. Большыя значэнні могуць пагоршыць прадукцыйнасць і не дадуць карысці.", + "disabled": "Дэтэктаванне аб'ектаў адключана. Здымкі, элементы разгляду і ўзбагачэнні (распазнаванне асобы, распазнаванне нумарных знакаў, Generative AI) працаваць не будуць.", + "resolutionShouldBeMultipleOfFour": "Для лепшага выніку шырыня і вышыня дэтэктавання мусяць быць кратнымі 4. Іншыя цотныя значэнні могуць даваць візуальныя скажэнні ў плыні «detect».", + "aspectRatioMismatch": "Уведзеныя шырыня і вышыня не адпавядаюць фарматным суадносінам бягучага разрознення дэтэктавання. Відарыс можа быць расцягнуты або скажоны.", + "maxFramesSet": "Задаванне максімуму кадраў перавызначае прадвызначаныя паводзіны і адключае адсочванне нерухомых аб'ектаў. Гэта патрэбна вельмі рэдка, карыстайцеся асцярожна.", + "squareResolution": "Квадратнае разрозненне дэтэктавання - незвычайны выбар. Шырыня і вышыня дэтэктавання мусяць адпавядаць фарматным суадносінам камеры (напрыклад 16:9), а не памерам мадэлі дэтэктавання аб'ектаў. Неадпаведнасць можа расцягнуць відарыс і знізіць дакладнасць дэтэктавання.", + "resolutionHigh": "Гэта разрозненне дэтэктавання вышэйшае за рэкамендаванае і можа павялічыць спажыванне рэсурсаў без павышэння дакладнасці. Для большасці камер рэкамендуецца разрозненне не вышэй за 1080p.", + "globalResolutionMultipleCameras": "Зададзена глабальнае разрозненне дэтэктавання, хоць наладжана некалькі камер. Калі камеры не маюць аднолькавых разрознення і фарматных суадносін, шырыню і вышыню дэтэктавання варта задаваць для кожнай камеры асобна." + }, + "model": { + "optimizedFor320": "Frigate аптымізаваны пад мадэль 320x320, і для большасці канфігурацый гэта найлепшы выбар. Мадэль 640x640 працуе павольней і дапамагае толькі ў асобных выпадках.", + "inputDimensionsNotDetectResolution": "Шырыня і вышыня ўваходу мадэлі - гэта памеры ўваходу мадэлі дэтэктавання аб'ектаў, а не разрозненне дэтэктавання камеры. Яны мусяць адпавядаць памерам вашай мадэлі, звычайна квадратным, напрыклад 320x320 або 640x640." + }, + "ffmpeg": { + "hwaccelManualNotRecommended": "Задаваць аргументы апаратнага паскарэння ўручную не рэкамендуецца. Калі няма асаблівай патрэбы, выберыце прэсет, які адпавядае вашаму абсталяванню.", + "inputsMissingGo2rtcStream": "Уваход ніжэй спасылаецца на рэтрансляцыю go2rtc, якой больш няма. Выберыце наяўную рэтрансляцыю або ўвядзіце URL камеры ўручную, інакш камера не падлучыцца." + }, + "objects": { + "genaiNoDescriptionsProvider": "Каб апісанні ствараліся, трэба наладзіць правайдара GenAI з роляй «descriptions»." + }, + "faceRecognition": { + "globalDisabled": "Каб распазнаванне асобы працавала на гэтай камеры, трэба ўключыць адпаведнае ўзбагачэнне.", + "personNotTracked": "Распазнаванне асобы патрабуе адсочвання аб'екта «person». Уключыце «person» у раздзеле аб'ектаў для гэтай камеры.", + "modelSizeLarge": "Мадэль «large» патрабуе GPU або NPU для прымальнай прадукцыйнасці. На сістэмах толькі з CPU карыстайцеся «small»." + }, + "lpr": { + "globalDisabled": "Каб распазнаванне нумарных знакаў працавала на гэтай камеры, трэба ўключыць адпаведнае ўзбагачэнне.", + "vehicleNotTracked": "Распазнаванне нумарных знакаў патрабуе адсочвання транспартнага сродку. Уключыце «car» або іншы тып транспарту ў раздзеле аб'ектаў для гэтай камеры.", + "modelSizeLarge": "Мадэль «large» аптымізавана пад шматрадковыя нумарныя знакі. Мадэль «small» працуе хутчэй, і карыстацца варта ёй, калі ў вашым рэгіёне не ўжываюцца шматрадковыя знакі." + }, + "record": { + "noRecordRole": "Ніводнай плыні не прызначана роля «record». Запіс працаваць не будзе." + }, + "birdseye": { + "objectsModeDetectDisabled": "Birdseye зададзены ў рэжыме «objects», але дэтэктаванне аб'ектаў для гэтай камеры адключана. Камера не з'явіцца ў Birdseye." + }, + "snapshots": { + "detectDisabled": "Дэтэктаванне аб'ектаў адключана. Здымкі ствараюцца з аб'ектаў пад адсочваннем і стварацца не будуць." + }, + "detectors": { + "mixedTypes": "Усе дэтэктары мусяць быць аднаго тыпу. Выдаліце наяўныя дэтэктары, каб выкарыстаць іншы тып.", + "mixedTypesSuggestion": "Усе дэтэктары мусяць быць аднаго тыпу. Выдаліце наяўныя дэтэктары або выберыце {{type}}." + }, + "semanticSearch": { + "jinav2SmallModelSize": "Памер «small» з мадэллю Jina V2 патрабуе шмат RAM і рэсурсаў на вывядзенне. Рэкамендуецца мадэль «large» з асобным GPU." + }, + "onvif": { + "autotrackingNoZones": "Аўтаадсочванне патрабуе хаця б адной зоны. Вызначце зону для гэтай камеры ў раздзеле «Маскі і зоны», а потым пазначце яе як патрэбную ніжэй." + } + } +} diff --git a/web/public/locales/be/views/system.json b/web/public/locales/be/views/system.json new file mode 100644 index 0000000000..5b8bb536c9 --- /dev/null +++ b/web/public/locales/be/views/system.json @@ -0,0 +1,269 @@ +{ + "documentTitle": { + "cameras": "Статыстыка камер - Frigate", + "storage": "Статыстыка сховішча - Frigate", + "general": "Агульная статыстыка - Frigate", + "enrichments": "Статыстыка ўзбагачэнняў - Frigate", + "logs": { + "frigate": "Журналы Frigate - Frigate", + "go2rtc": "Журналы go2rtc - Frigate", + "nginx": "Журналы Nginx - Frigate", + "websocket": "Журналы паведамленняў - Frigate" + } + }, + "title": "Сістэма", + "metrics": "Сістэмныя метрыкі", + "logs": { + "websocket": { + "label": "Паведамленні", + "pause": "Паўза", + "resume": "Працягнуць", + "clear": "Ачысціць", + "filter": { + "all": "Усе топікі", + "topics": "Топікі", + "events": "Падзеі", + "reviews": "Разгляды", + "classification": "Класіфікацыя", + "face_recognition": "Распазнаванне асобы", + "lpr": "LPR", + "camera_activity": "Актыўнасць камеры", + "system": "Сістэма", + "camera": "Камера", + "all_cameras": "Усе камеры", + "cameras_count_one": "{{count}} камера", + "cameras_count_other": "{{count}} камеры" + }, + "empty": "Паведамленняў пакуль не запісана", + "count_one": "{{count}} паведамленне", + "count_other": "{{count}} паведамлення", + "expanded": { + "payload": "Карысная нагрузка" + } + }, + "download": { + "label": "Спампаваць журналы" + }, + "copy": { + "label": "Скапіяваць у буфер абмену", + "success": "Журналы скапіяваны ў буфер абмену", + "error": "Не ўдалося скапіяваць журналы ў буфер абмену" + }, + "type": { + "label": "Тып", + "timestamp": "Метка часу", + "tag": "Тэг", + "message": "Паведамленне" + }, + "tips": "Журналы паступаюць з сервера ў рэальным часе", + "toast": { + "error": { + "fetchingLogsFailed": "Памылка атрымання журналаў: {{errorMessage}}", + "whileStreamingLogs": "Памылка пры атрыманні плыні журналаў: {{errorMessage}}" + } + } + }, + "general": { + "title": "Агульныя", + "detector": { + "title": "Дэтэктары", + "inferenceSpeed": "Хуткасць вывядзення дэтэктара", + "temperature": "Тэмпература дэтэктара", + "cpuUsage": "Выкарыстанне CPU дэтэктарам", + "cpuUsageInformation": "CPU, выкарыстаны на падрыхтоўку ўваходных і выходных даных для мадэляў дэтэктавання. Гэта значэнне не вымярае само вывядзенне, нават калі выкарыстоўваецца GPU або паскаральнік.", + "memoryUsage": "Выкарыстанне памяці дэтэктарам" + }, + "hardwareInfo": { + "title": "Звесткі пра абсталяванне", + "gpuUsage": "Выкарыстанне GPU", + "gpuMemory": "Памяць GPU", + "gpuEncoder": "Кадавальнік GPU", + "gpuCompute": "Вылічэнні / кадаванне GPU", + "gpuDecoder": "Дэкадавальнік GPU", + "gpuTemperature": "Тэмпература GPU", + "gpuInfo": { + "vainfoOutput": { + "title": "Вывад vainfo", + "returnCode": "Код вяртання: {{code}}", + "processOutput": "Вывад працэсу:", + "processError": "Памылка працэсу:" + }, + "nvidiaSMIOutput": { + "title": "Вывад Nvidia SMI", + "name": "Назва: {{name}}", + "driver": "Драйвер: {{driver}}", + "cudaComputerCapability": "Вылічальныя магчымасці CUDA: {{cuda_compute}}", + "vbios": "Звесткі пра VBios: {{vbios}}" + }, + "closeInfo": { + "label": "Закрыць звесткі пра GPU" + }, + "copyInfo": { + "label": "Скапіяваць звесткі пра GPU" + }, + "toast": { + "success": "Звесткі пра GPU скапіяваны ў буфер абмену" + } + }, + "npuUsage": "Выкарыстанне NPU", + "npuMemory": "Памяць NPU", + "npuTemperature": "Тэмпература NPU" + }, + "otherProcesses": { + "title": "Іншыя працэсы", + "processCpuUsage": "Выкарыстанне CPU працэсам", + "processMemoryUsage": "Выкарыстанне памяці працэсам", + "series": { + "go2rtc": "go2rtc", + "recording": "запіс", + "review_segment": "сегмент разгляду", + "embeddings": "убудаванні", + "audio_detector": "дэтэктар гуку" + } + } + }, + "storage": { + "title": "Сховішча", + "overview": "Агляд", + "recordings": { + "title": "Запісы", + "tips": "Гэта значэнне паказвае агульны аб'ём сховішча, заняты запісамі ў базе даных Frigate. Frigate не адсочвае месца, занятае ўсімі файламі на дыску.", + "earliestRecording": "Самы ранні даступны запіс:" + }, + "shm": { + "title": "Выдзеленая памяць SHM (агульная памяць)", + "warning": "Бягучы памер SHM {{total}} МБ занадта малы. Павялічце яго прынамсі да {{min_shm}} МБ.", + "frameLifetime": { + "title": "Час жыцця кадра", + "description": "Колькасць слотаў кадраў у агульнай памяці для кожнай камеры: {{frames}}. Пры частаце кадраў самай хуткай камеры кожны кадр даступны прыблізна {{lifetime}} с, пакуль не будзе перазапісаны." + } + }, + "cameraStorage": { + "title": "Сховішча камер", + "camera": "Камера", + "unusedStorageInformation": "Звесткі пра нявыкарыстанае месца", + "storageUsed": "Сховішча", + "percentageOfTotalUsed": "Працэнт ад агульнага", + "bandwidth": "Паласа прапускання", + "unused": { + "title": "Нявыкарыстана", + "tips": "Гэта значэнне можа недакладна адлюстроўваць вольнае месца, даступнае Frigate, калі на дыску ёсць іншыя файлы акрамя запісаў Frigate. Frigate не адсочвае месца па-за сваімі запісамі." + } + } + }, + "cameras": { + "title": "Камеры", + "overview": "Агляд", + "info": { + "aspectRatio": "фарматныя суадносіны", + "cameraProbeInfo": "Звесткі зандзіравання камеры {{camera}}", + "streamDataFromFFPROBE": "Даныя плыні атрыманы праз ffprobe.", + "fetching": "Атрыманне даных камеры", + "stream": "Плынь {{idx}}", + "video": "Відэа:", + "codec": "Кодэк:", + "resolution": "Разрозненне:", + "fps": "FPS:", + "unknown": "Невядома", + "audio": "Гук:", + "error": "Памылка: {{error}}", + "tips": { + "title": "Звесткі зандзіравання камеры" + }, + "keyframes": { + "title": "Аналіз ключавых кадраў", + "analyzing": "Аналіз ключавых кадраў… засталося секунд: {{seconds}}", + "stillAnalyzing": "Аналіз ключавых кадраў працягваецца…", + "recordStream": "Плынь запісу:", + "keyframeCount": "Заўважана ключавых кадраў:", + "observedDuration": "Назіраная працягласць:", + "gap": "Прамежак паміж ключавымі кадрамі (мін. / сяр. / макс.):", + "segmentLength": "Даўжыня сегмента запісу:", + "ok": "Ключавыя кадры прыблізна кожныя {{seconds}} с, гэта добра для запісу і прайгравання.", + "warning": "Рэдкія або нераўнамерныя ключавыя кадры (найбольшы прамежак каля {{seconds}} с), верагодна разумны кодэк (H.264+/H.265+), гэта не рэкамендуецца.", + "error": "Прамежак паміж ключавымі кадрамі (каля {{seconds}} с) перавышае даўжыню сегмента запісу ({{segmentTime}} с). Некаторыя сегменты могуць застацца без ключавога кадра, што ламае прайграванне. Адключыце разумны кодэк «+» на камеры або скараціце інтэрвал ключавых кадраў.", + "unknown": "Не ўдалося вызначыць інтэрвал ключавых кадраў.", + "recordDisabled": "Для гэтай камеры запіс адключаны." + } + }, + "framesAndDetections": "Кадры / дэтэктаванні", + "noCameras": { + "title": "Камер не знойдзена" + }, + "label": { + "camera": "камера", + "detect": "дэтэктаваць", + "skipped": "прапушчана", + "ffmpeg": "FFMPEG", + "capture": "захоп", + "overallFramesPerSecond": "агульная колькасць кадраў на секунду", + "overallDetectionsPerSecond": "агульная колькасць дэтэктаванняў на секунду", + "overallSkippedDetectionsPerSecond": "агульная колькасць прапушчаных дэтэктаванняў на секунду", + "cameraFfmpeg": "FFmpeg {{camName}}", + "cameraCapture": "захоп {{camName}}", + "cameraDetect": "дэтэктаванне {{camName}}", + "cameraGpu": "GPU {{camName}}", + "cameraFramesPerSecond": "кадраў на секунду {{camName}}", + "cameraDetectionsPerSecond": "дэтэктаванняў на секунду {{camName}}", + "cameraSkippedDetectionsPerSecond": "прапушчаных дэтэктаванняў на секунду {{camName}}" + }, + "connectionQuality": { + "title": "Якасць злучэння", + "excellent": "Выдатная", + "fair": "Здавальняючая", + "poor": "Слабая", + "unusable": "Непрыдатная", + "fps": "FPS", + "expectedFps": "Чаканы FPS", + "reconnectsLastHour": "Перападключэнні (за апошнюю гадзіну)", + "stallsLastHour": "Затрымкі (за апошнюю гадзіну)" + }, + "toast": { + "success": { + "copyToClipboard": "Даныя зандзіравання скапіяваны ў буфер абмену." + }, + "error": { + "unableToProbeCamera": "Не ўдалося зандзіраваць камеру: {{errorMessage}}" + } + } + }, + "lastRefreshed": "Апошняе абнаўленне: ", + "stats": { + "ffmpegHighCpuUsage": "{{camera}} моцна нагружае CPU праз FFmpeg ({{ffmpegAvg}}%)", + "detectHighCpuUsage": "{{camera}} моцна нагружае CPU дэтэктаваннем ({{detectAvg}}%)", + "healthy": "Сістэма спраўная", + "reindexingEmbeddings": "Пераіндэксацыя ўбудаванняў (гатова {{processed}}%)", + "cameraIsOffline": "{{camera}} па-за сеткай", + "detectIsSlow": "{{detect}} працуе павольна ({{speed}} мс)", + "detectIsVerySlow": "{{detect}} працуе вельмі павольна ({{speed}} мс)", + "shmTooLow": "Выдзеленую памяць /dev/shm ({{total}} МБ) трэба павялічыць прынамсі да {{min}} МБ.", + "debugReplayActive": "Сеанс адладачнага паўтору актыўны" + }, + "enrichments": { + "title": "Узбагачэнні", + "infPerSecond": "Вывядзенняў на секунду", + "averageInf": "Сярэдні час вывядзення", + "embeddings": { + "image_embedding": "Убудаванне відарыса", + "text_embedding": "Убудаванне тэксту", + "face_recognition": "Распазнаванне асобы", + "plate_recognition": "Распазнаванне нумарнога знака", + "image_embedding_speed": "Хуткасць убудавання відарыса", + "face_embedding_speed": "Хуткасць убудавання твару", + "face_recognition_speed": "Хуткасць распазнавання асобы", + "plate_recognition_speed": "Хуткасць распазнавання нумарнога знака", + "text_embedding_speed": "Хуткасць убудавання тэксту", + "yolov9_plate_detection_speed": "Хуткасць дэтэктавання нумарнога знака YOLOv9", + "yolov9_plate_detection": "Дэтэктаванне нумарнога знака YOLOv9", + "review_description": "Апісанне разгляду", + "review_description_speed": "Хуткасць апісання разгляду", + "review_description_events_per_second": "Апісанне разгляду", + "object_description": "Апісанне аб'екта", + "object_description_speed": "Хуткасць апісання аб'екта", + "object_description_events_per_second": "Апісанне аб'екта", + "classification": "Класіфікацыя {{name}}", + "classification_speed": "Хуткасць класіфікацыі {{name}}", + "classification_events_per_second": "Падзей класіфікацыі {{name}} на секунду" + } + } +}