From baa1ba718c68c2d01a64b1a5916e0299817aaa5a Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Fri, 28 Aug 2026 13:50:58 +0200 Subject: [PATCH] Translated using Weblate (Belarusian) Currently translated at 100.0% (23 of 23 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (60 of 60 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (800 of 800 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (67 of 67 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (239 of 239 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (129 of 129 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (74 of 74 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (86 of 86 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (2 of 2 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (108 of 108 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (474 of 474 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (10 of 10 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (46 of 46 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (500 of 500 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (185 of 185 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (2 of 2 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (26 of 26 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (100 of 100 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (62 of 62 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (10 of 10 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (54 of 54 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (25 of 25 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (141 of 141 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (50 of 50 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (49 of 49 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (1295 of 1295 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (145 of 145 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (6 of 6 strings) Translated using Weblate (Belarusian) Currently translated at 10.0% (1 of 10 strings) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Added translation using Weblate (Belarusian) Co-authored-by: Hosted Weblate Co-authored-by: Uladz Maltsau Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-icons/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-input/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-groups/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-validation/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-chat/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-motionsearch/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-recording/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-replay/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/be/ Translation: Frigate NVR/Config - Cameras Translation: Frigate NVR/Config - Global Translation: Frigate NVR/Config - Groups Translation: Frigate NVR/Config - Validation Translation: Frigate NVR/audio Translation: Frigate NVR/common Translation: Frigate NVR/components-auth Translation: Frigate NVR/components-camera Translation: Frigate NVR/components-dialog Translation: Frigate NVR/components-filter Translation: Frigate NVR/components-icons Translation: Frigate NVR/components-input Translation: Frigate NVR/components-player Translation: Frigate NVR/objects Translation: Frigate NVR/views-chat Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-configeditor Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-exports Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-live Translation: Frigate NVR/views-motionSearch Translation: Frigate NVR/views-recording Translation: Frigate NVR/views-replay Translation: Frigate NVR/views-search Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/be/audio.json | 502 +++++ web/public/locales/be/common.json | 331 +++ web/public/locales/be/components/auth.json | 16 + web/public/locales/be/components/camera.json | 90 + web/public/locales/be/components/dialog.json | 204 ++ web/public/locales/be/components/filter.json | 140 ++ web/public/locales/be/components/icons.json | 8 + web/public/locales/be/components/input.json | 10 + web/public/locales/be/components/player.json | 52 + web/public/locales/be/config/cameras.json | 956 ++++++++ web/public/locales/be/config/global.json | 1614 +++++++++++++ web/public/locales/be/config/groups.json | 73 + web/public/locales/be/config/validation.json | 35 + web/public/locales/be/objects.json | 131 ++ web/public/locales/be/views/chat.json | 72 + .../locales/be/views/classificationModel.json | 219 ++ web/public/locales/be/views/configEditor.json | 18 + web/public/locales/be/views/events.json | 95 + web/public/locales/be/views/explore.json | 267 +++ web/public/locales/be/views/exports.json | 128 ++ web/public/locales/be/views/faceLibrary.json | 102 + web/public/locales/be/views/live.json | 200 ++ web/public/locales/be/views/motionSearch.json | 80 + web/public/locales/be/views/recording.json | 12 + web/public/locales/be/views/replay.json | 60 + web/public/locales/be/views/search.json | 73 + web/public/locales/be/views/settings.json | 1991 +++++++++++++++++ web/public/locales/be/views/system.json | 269 +++ 28 files changed, 7748 insertions(+) create mode 100644 web/public/locales/be/audio.json create mode 100644 web/public/locales/be/common.json create mode 100644 web/public/locales/be/components/auth.json create mode 100644 web/public/locales/be/components/camera.json create mode 100644 web/public/locales/be/components/dialog.json create mode 100644 web/public/locales/be/components/filter.json create mode 100644 web/public/locales/be/components/icons.json create mode 100644 web/public/locales/be/components/input.json create mode 100644 web/public/locales/be/components/player.json create mode 100644 web/public/locales/be/config/cameras.json create mode 100644 web/public/locales/be/config/global.json create mode 100644 web/public/locales/be/config/groups.json create mode 100644 web/public/locales/be/config/validation.json create mode 100644 web/public/locales/be/objects.json create mode 100644 web/public/locales/be/views/chat.json create mode 100644 web/public/locales/be/views/classificationModel.json create mode 100644 web/public/locales/be/views/configEditor.json create mode 100644 web/public/locales/be/views/events.json create mode 100644 web/public/locales/be/views/explore.json create mode 100644 web/public/locales/be/views/exports.json create mode 100644 web/public/locales/be/views/faceLibrary.json create mode 100644 web/public/locales/be/views/live.json create mode 100644 web/public/locales/be/views/motionSearch.json create mode 100644 web/public/locales/be/views/recording.json create mode 100644 web/public/locales/be/views/replay.json create mode 100644 web/public/locales/be/views/search.json create mode 100644 web/public/locales/be/views/settings.json create mode 100644 web/public/locales/be/views/system.json 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}} на секунду" + } + } +}