From 2af1d22643d3af379aecfdf640cc3b6f37c6a654 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Thu, 29 May 2025 20:34:48 +0200 Subject: [PATCH] Translated using Weblate (Portuguese) Currently translated at 100.0% (352 of 352 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (62 of 62 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (118 of 118 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (427 of 427 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (427 of 427 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (352 of 352 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (427 of 427 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (427 of 427 strings) Translated using Weblate (Portuguese) Currently translated at 55.6% (196 of 352 strings) Translated using Weblate (Portuguese) Currently translated at 69.0% (295 of 427 strings) Translated using Weblate (Portuguese) Currently translated at 65.6% (231 of 352 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (182 of 182 strings) Translated using Weblate (Portuguese) Currently translated at 67.6% (289 of 427 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (114 of 114 strings) Translated using Weblate (Portuguese) Currently translated at 60.5% (213 of 352 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (62 of 62 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (115 of 115 strings) Translated using Weblate (Portuguese) Currently translated at 99.4% (181 of 182 strings) Translated using Weblate (Portuguese) Currently translated at 53.1% (227 of 427 strings) Translated using Weblate (Portuguese) Currently translated at 91.9% (57 of 62 strings) Translated using Weblate (Portuguese) Currently translated at 97.3% (112 of 115 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (8 of 8 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (66 of 66 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (50 of 50 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (46 of 46 strings) Translated using Weblate (Portuguese) Currently translated at 46.6% (199 of 427 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (118 of 118 strings) Translated using Weblate (Portuguese) Currently translated at 46.3% (198 of 427 strings) Co-authored-by: Daniel Barradas Co-authored-by: Filipe Ferreira Co-authored-by: Hosted Weblate Co-authored-by: P1LH4 Co-authored-by: danielsaul@msn.com Co-authored-by: lbiscuola Co-authored-by: piscinas Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/pt/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/pt/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/pt/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/pt/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/pt/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/pt/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/pt/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/pt/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/pt/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/pt/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/pt/ Translation: Frigate NVR/audio Translation: Frigate NVR/common Translation: Frigate NVR/components-camera Translation: Frigate NVR/components-dialog Translation: Frigate NVR/components-filter Translation: Frigate NVR/objects Translation: Frigate NVR/views-configeditor Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/pt/audio.json | 246 +++++++++++++- web/public/locales/pt/common.json | 11 +- web/public/locales/pt/components/camera.json | 7 +- web/public/locales/pt/components/dialog.json | 4 + web/public/locales/pt/components/filter.json | 3 +- web/public/locales/pt/objects.json | 6 +- web/public/locales/pt/views/configEditor.json | 3 +- web/public/locales/pt/views/explore.json | 12 +- web/public/locales/pt/views/faceLibrary.json | 30 +- web/public/locales/pt/views/settings.json | 313 +++++++++++++++++- web/public/locales/pt/views/system.json | 3 +- 11 files changed, 595 insertions(+), 43 deletions(-) diff --git a/web/public/locales/pt/audio.json b/web/public/locales/pt/audio.json index 6f3afc9a9..018bdaee0 100644 --- a/web/public/locales/pt/audio.json +++ b/web/public/locales/pt/audio.json @@ -5,7 +5,7 @@ "bellow": "Abaixo", "yell": "Gritar", "whispering": "Sussurando", - "child_singing": "Criança Cantando", + "child_singing": "Criança cantando", "crying": "Chorando", "singing": "Cantando", "laughter": "Risada", @@ -53,14 +53,14 @@ "crowd": "Multidão", "snoring": "Ronco", "choir": "Coro", - "yodeling": "Yodeling", + "yodeling": "Cantarolar", "chant": "Canto", "synthetic_singing": "Canto sintético", "rapping": "Cantando rap", "groan": "Gemido", "snicker": "Risada", "animal": "Animal", - "pets": "Pets", + "pets": "Animais de estimação", "bark": "Latido", "howl": "Uivo", "bow_wow": "Au au", @@ -143,7 +143,7 @@ "radio": "Rádio", "splinter": "Lasca", "owl": "Coruja", - "mouse": "Ratinho", + "mouse": "Rato", "vehicle": "Veículo", "hair_dryer": "Secador de cabelo", "toothbrush": "Escova de dentes", @@ -189,5 +189,241 @@ "church_bell": "Sino de igreja", "bicycle_bell": "Sino de bicicleta", "bagpipes": "Gaita de foles", - "cowbell": "Sininho da Vaca" + "cowbell": "Sininho da Vaca", + "hiss": "Sussuro", + "caterwaul": "Gritaria", + "clip_clop": "Cavalgar", + "neigh": "Relincho", + "moo": "Mugido", + "gobble": "Grasnado", + "cluck": "Cacarejo", + "caw": "Gato", + "chirp": "Pío", + "yip": "Chicote", + "bleat": "Balir", + "honk": "Buzina", + "roaring_cats": "Gatos a ronronar", + "roar": "Rugido", + "squawk": "Cacarejar", + "patter": "Conversa", + "buzz": "Zombido", + "steel_guitar": "Guitarra de colo", + "zither": "Citara", + "electric_piano": "Piano Elétrico", + "electronic_organ": "Órgão Elétrico", + "hammond_organ": "Órgão Hammond", + "sampler": "Amostrador", + "harpsichord": "Cravo", + "drum_machine": "Máquina de Tambor", + "drum": "Tambor", + "snare_drum": "Tambor de Laço", + "rimshot": "Som circular", + "drum_roll": "Tambor de Rolo", + "bass_drum": "Tambor Baixo", + "timpani": "Tímpanos", + "tabla": "Tabla", + "cymbal": "Címbalo", + "hi_hat": "Conjunto Címbalos", + "wood_block": "Bloco de madeira", + "tubular_bells": "Sinos tubulares", + "mallet_percussion": "Percussão de malho", + "glockenspiel": "Carrilhão", + "electronic_dance_music": "Música de Dança Eletrônica", + "ambient_music": "Música Ambiente", + "trance_music": "Música de Trance", + "music_of_latin_america": "Música da América Latina", + "salsa_music": "Música Salsa", + "flamenco": "Flamengo", + "blues": "Blues", + "music_for_children": "Música para crianças", + "new-age_music": "Música New Age", + "vocal_music": "Música Vocal", + "a_capella": "A cappella", + "music_of_africa": "Música de África", + "lullaby": "Canção de embalar", + "video_game_music": "Música de vídeo-game", + "christmas_music": "Música de Natal", + "dance_music": "Música Dance", + "wedding_music": "Música de Casamento", + "happy_music": "Música Alegre", + "sad_music": "Música Triste", + "tender_music": "Música Ternurenta", + "exciting_music": "Música Excitante", + "scary_music": "Música Assustadora", + "wind": "Vento", + "rustling_leaves": "Folhas a farfalhar", + "wind_noise": "Vento ruidoso", + "thunderstorm": "Tempestade", + "thunder": "Trovão", + "water": "Água", + "rain": "Chuva", + "raindrop": "Gotas de chuva", + "rain_on_surface": "Chuva numa superfície", + "stream": "Transmissão", + "gurgling": "Giratório", + "train_whistle": "Apito de Comboio", + "train_horn": "Buzina de Comboio", + "railroad_car": "Carruagem de comboio", + "train_wheels_squealing": "Rodas do comboio a chiar", + "subway": "Metro", + "aircraft": "Aeronave", + "aircraft_engine": "Motor Aeronave", + "jet_engine": "Motor a Jato", + "propeller": "Hélice", + "jackhammer": "Britadeira", + "sawing": "Serrar", + "filing": "Depósito", + "power_tool": "Ferramenta elétrica", + "sanding": "Lixar", + "drill": "Perfurar", + "explosion": "Explosão", + "gunshot": "Tiro", + "machine_gun": "Metralhadora", + "fusillade": "Fuzilada", + "artillery_fire": "Fogo de Artilharia", + "cap_gun": "Pistola de ar comprimido", + "fireworks": "Fogo Artificio", + "firecracker": "Bombinha", + "burst": "Rebentar", + "typing": "Digitando", + "angry_music": "Música Zangada", + "typewriter": "Máquina de escrever", + "marimba": "Marimba", + "vibraphone": "Vibrafone", + "steelpan": "Tambor de aço", + "brass_instrument": "Instrumento de sopro", + "french_horn": "Trompa Francesa", + "trombone": "Trombone", + "heavy_metal": "Heavy Metal", + "bowed_string_instrument": "Instrumento de corda curvada", + "string_section": "Seção de cordas", + "bell": "Sino", + "jingle_bell": "Jingle Bell", + "tuning_fork": "Diapasão", + "wind_chime": "Carrilhão de Vento", + "pizzicato": "beliscar", + "chime": "harmonia", + "accordion": "Acordeão", + "didgeridoo": "Didgeridoo", + "theremin": "Teremim", + "singing_bowl": "Tigela Cantante", + "scratching": "Coçar", + "hip_hop_music": "Música Hip-Hop", + "beatboxing": "Beatboxing", + "rock_music": "Música rock", + "punk_rock": "Punk Rock", + "grunge": "Grunge", + "rock_and_roll": "Rock and Roll", + "rhythm_and_blues": "Rhythm and Blues", + "pop_music": "Música Pop", + "soul_music": "Música Soul", + "reggae": "Reggae", + "country": "Country", + "bluegrass": "Bluegrass", + "funk": "Funk", + "folk_music": "Música Folclórica", + "swing_music": "Musica Swing", + "middle_eastern_music": "Música do Oriente Médio", + "jazz": "Jazz", + "disco": "Disco", + "classical_music": "Música clássica", + "opera": "Opera", + "electronic_music": "Música Eletrônica", + "house_music": "Música House", + "techno": "Techno", + "dubstep": "Dubstep", + "drum_and_bass": "Drum and Bass", + "electronica": "Eletrônica", + "afrobeat": "Afrobeat", + "christian_music": "Música Cristã", + "gospel_music": "Musica Gospel", + "music_of_asia": "Música da Ásia", + "carnatic_music": "Música Carnática", + "music_of_bollywood": "Música de Bollywood", + "ska": "Ska", + "traditional_music": "Música Tradicional", + "independent_music": "Música Independente", + "song": "Canção", + "background_music": "Música de fundo", + "theme_music": "Música Temática", + "jingle": "Tinir", + "soundtrack_music": "Música de trilha sonora", + "air_brake": "Freio a ar", + "air_horn": "Buzina de ar", + "reversing_beeps": "Bips de ré", + "crackle": "Estalar", + "traffic_noise": "Ruído de trânsito", + "power_windows": "Janelas elétricas", + "skidding": "Derrapando", + "tire_squeal": "Guincho de pneu", + "car_passing_by": "Carro passando", + "sailboat": "Veleiro", + "rowboat": "Barco a remo", + "motorboat": "Barco a motor", + "motor_vehicle": "Veículo motorizado", + "fire_engine": "Carro de bombeiros", + "toot": "Apito", + "rail_transport": "Transporte Ferroviário", + "accelerating": "Acelerando", + "dental_drill's_drill": "Broca dentária", + "lawn_mower": "Cortador de grama", + "chainsaw": "Motosserra", + "medium_engine": "Motor Médio", + "engine_knocking": "Batida do motor", + "engine_starting": "Partida do motor", + "idling": "Inativo", + "slam": "Bater", + "light_engine": "Motor leve", + "sliding_door": "Porta deslizante", + "knock": "Truz", + "fixed-wing_aircraft": "Aeronaves de asa fixa", + "doorbell": "Campainha", + "ding-dong": "Ding Dong", + "heavy_engine": "Motor pesado", + "squeak": "Rangido", + "cupboard_open_or_close": "Armário aberto ou fechado", + "drawer_open_or_close": "Gaveta aberta ou fechada", + "tap": "Tocar", + "dishes": "Pratos", + "cutlery": "Talheres", + "chopping": "Cortar", + "frying": "Fritar", + "microwave_oven": "Forno de microondas", + "water_tap": "Torneira de água", + "bathtub": "Banheira", + "keys_jangling": "Chaves tilintando", + "vacuum_cleaner": "Aspirador", + "zipper": "Zíper", + "shuffling_cards": "Embaralhando cartas", + "toilet_flush": "Descarga de vaso sanitário", + "electric_toothbrush": "Escova de dentes elétrica", + "writing": "Escrita", + "telephone_bell_ringing": "Campainha do telefone tocando", + "ringtone": "Toca a tocar", + "telephone_dialing": "Discagem telefônica", + "dial_tone": "Tom de discagem", + "busy_signal": "Sinal de ocupado", + "steam_whistle": "Apito a vapor", + "mechanisms": "Mecanismos", + "ratchet": "Catraca", + "civil_defense_siren": "Sirene da Defesa Civil", + "buzzer": "Besouro", + "foghorn": "Sirene de nevoeiro", + "alarm_clock": "Relógio de alarme", + "gears": "Engrenagens", + "pulleys": "Polias", + "sewing_machine": "Máquina de costura", + "mechanical_fan": "Ventilador mecânico", + "air_conditioning": "Ar condicionado", + "cash_register": "Caixa registradora", + "printer": "Impressora", + "tick": "Marcação", + "tick-tock": "Tique-taque", + "single-lens_reflex_camera": "Câmera de Reflexo de lente única", + "hammer": "Martelo", + "boom": "Estrondo", + "chop": "Cortar", + "eruption": "Erupção", + "environmental_noise": "Ruído ambiental", + "field_recording": "Gravação de Campo" } diff --git a/web/public/locales/pt/common.json b/web/public/locales/pt/common.json index c45ff761c..4a7c32c33 100644 --- a/web/public/locales/pt/common.json +++ b/web/public/locales/pt/common.json @@ -83,12 +83,20 @@ "formattedTimestampFilename": { "12hour": "MM-dd-yy-h-mm-ss-a", "24hour": "MM-dd-yy-HH-mm-ss" + }, + "formattedTimestampMonthDayYear": { + "12hour": "d MMM, yyyy", + "24hour": "d MMM, yyyy" } }, "unit": { "speed": { "kph": "kph", "mph": "mph" + }, + "length": { + "feet": "pé", + "meters": "metros" } }, "button": { @@ -191,7 +199,8 @@ "da": "Dinamarquês (Dansk)", "ro": "Romeno (Română)", "hu": "Húngaro (Magyar)", - "sk": "Eslovaco (Slovenčina)" + "sk": "Eslovaco (Slovenčina)", + "th": "Tailandês" }, "appearance": "Aparência", "darkMode": { diff --git a/web/public/locales/pt/components/camera.json b/web/public/locales/pt/components/camera.json index 1272553a6..08dd97493 100644 --- a/web/public/locales/pt/components/camera.json +++ b/web/public/locales/pt/components/camera.json @@ -54,7 +54,8 @@ "label": "Sem transmissão", "desc": "As imagens da câmera serão atualizadas apenas uma vez por minuto e não haverá transmissão ao vivo." } - } + }, + "placeholder": "Escolha um método de transmissão" }, "compatibilityMode": { "label": "Modo de compatibilidade", @@ -62,7 +63,9 @@ }, "label": "Configurações de transmissão da câmera", "desc": "Altere as opções de transmissão ao vivo para o painel deste grupo de câmeras. Essas configurações são específicas do dispositivo/navegador.", - "title": "{{cameraName}} configurações de transmissão" + "title": "{{cameraName}} configurações de transmissão", + "placeholder": "Escolha uma transmissão", + "stream": "Transmissão" } } }, diff --git a/web/public/locales/pt/components/dialog.json b/web/public/locales/pt/components/dialog.json index cd3c4e32e..04c623056 100644 --- a/web/public/locales/pt/components/dialog.json +++ b/web/public/locales/pt/components/dialog.json @@ -111,6 +111,10 @@ "title": "Confirmar exclusão", "desc": { "selected": "Tem certeza de que deseja excluir todos os vídeos gravados associados a este item de revisão?

Segure a tecla Shift para ignorar esta caixa de diálogo no futuro." + }, + "toast": { + "success": "As imagens de vídeo associadas aos itens de revisão selecionados foram excluídas com êxito.", + "error": "Falhou a apagar: {{error}}" } }, "button": { diff --git a/web/public/locales/pt/components/filter.json b/web/public/locales/pt/components/filter.json index 39449296a..abdd429ff 100644 --- a/web/public/locales/pt/components/filter.json +++ b/web/public/locales/pt/components/filter.json @@ -21,7 +21,8 @@ "all": { "title": "Todas as datas", "short": "Datas" - } + }, + "selectPreset": "Escolhe uma predefinição…" }, "more": "Mais filtros", "reset": { diff --git a/web/public/locales/pt/objects.json b/web/public/locales/pt/objects.json index 3426216a9..a9d7f2664 100644 --- a/web/public/locales/pt/objects.json +++ b/web/public/locales/pt/objects.json @@ -23,7 +23,7 @@ "fire_hydrant": "Hidratação de Fogo", "bird": "Pássaro", "cat": "Gato", - "bench": "Bench", + "bench": "Banco", "elephant": "Elefante", "hat": "Chapéu", "backpack": "Mochila", @@ -59,7 +59,7 @@ "dog": "Cão", "bear": "Urso", "eye_glasses": "Óculos", - "umbrella": "guarda-chuva", + "umbrella": "Guarda-chuva", "horse": "Cavalo", "bed": "Cama", "cow": "Vaca", @@ -75,7 +75,7 @@ "goat": "Bode", "vehicle": "Veículo", "scissors": "Tesoura", - "mouse": "Ratinho", + "mouse": "Rato", "teddy_bear": "Urso de pelúcia", "hair_dryer": "Secador de cabelo", "toothbrush": "Escova de dentes", diff --git a/web/public/locales/pt/views/configEditor.json b/web/public/locales/pt/views/configEditor.json index 1edf4a02f..86cb6d52d 100644 --- a/web/public/locales/pt/views/configEditor.json +++ b/web/public/locales/pt/views/configEditor.json @@ -11,5 +11,6 @@ "savingError": "Erro ao salvar configuração" } }, - "documentTitle": "Editor de configuração - Frigate" + "documentTitle": "Editor de configuração - Frigate", + "confirm": "Sair sem salvar?" } diff --git a/web/public/locales/pt/views/explore.json b/web/public/locales/pt/views/explore.json index b80e97328..5c8a0ccdc 100644 --- a/web/public/locales/pt/views/explore.json +++ b/web/public/locales/pt/views/explore.json @@ -134,7 +134,10 @@ "desc": "Esses dados vêm do feed de detecção da sua câmera, mas são sobrepostos nas imagens do feed de gravação. É improvável que os dois streams estejam perfeitamente sincronizados. Como resultado, a caixa delimitadora e o vídeo não se alinharão perfeitamente. No entanto, o campo annotation_offset pode ser usado para ajustar isso.", "tips": "DICA: Imagine que há um clipe de evento com uma pessoa andando da esquerda para a direita. Se a caixa delimitadora da linha do tempo do evento estiver consistentemente à esquerda da pessoa, o valor deve ser diminuído. Da mesma forma, se uma pessoa estiver andando da esquerda para a direita e a caixa delimitadora estiver consistentemente à frente da pessoa, o valor deve ser aumentado.", "label": "Deslocamento de Anotação", - "millisecondsToOffset": "Milissegundos para deslocar as anotações de detecção. Padrão: 0" + "millisecondsToOffset": "Milissegundos para deslocar as anotações de detecção. Padrão: 0", + "toast": { + "success": "O deslocamento de anotação para {{camera}} foi salvo no arquivo de configuração. Reinicie o Frigate para aplicar as alterações." + } }, "showAllZones": { "title": "Mostrar todas as zonas", @@ -149,7 +152,9 @@ "createObjectMask": "Criar Máscara de Objeto", "adjustAnnotationSettings": "Ajustar configurações de anotação", "autoTrackingTips": "As posições da caixa delimitadora serão imprecisas para câmeras com rastreamento automático.", - "scrollViewTips": "Role para ver os momentos significativos do ciclo de vida deste objeto." + "scrollViewTips": "Role para ver os momentos significativos do ciclo de vida deste objeto.", + "count": "{{first}} de {{second}}", + "trackedPoint": "Ponto Rastreado" }, "itemMenu": { "downloadSnapshot": { @@ -199,5 +204,6 @@ "noTrackedObjects": "Nenhum objeto rastreado encontrado", "trackedObjectsCount_one": "{{count}} objeto rastreado ", "trackedObjectsCount_many": "{{count}} objetos rastreados ", - "trackedObjectsCount_other": "" + "trackedObjectsCount_other": "", + "exploreMore": "Explora mais objetos {{label}}" } diff --git a/web/public/locales/pt/views/faceLibrary.json b/web/public/locales/pt/views/faceLibrary.json index 70c9e325a..e163ec8fe 100644 --- a/web/public/locales/pt/views/faceLibrary.json +++ b/web/public/locales/pt/views/faceLibrary.json @@ -1,16 +1,18 @@ { "description": { "placeholder": "Digite um nome para esta coleção", - "addFace": "Veja como adicionar uma nova coleção à biblioteca de rostos." + "addFace": "Veja como adicionar uma nova coleção à biblioteca de rostos.", + "invalidName": "Nome inválido. Os nomes podem incluir apenas letras, números, espaços, apóstrofos, sublinhados e hífens." }, "details": { "person": "Pessoa", "face": "Detalhes do rosto", - "faceDesc": "Detalhes do rosto e objeto associado", + "faceDesc": "Detalhes do objeto encontrado que gerou esta cara", "timestamp": "Carimbo de hora", "confidence": "Confiança", "scoreInfo": "A pontuação da subetiqueta é a pontuação ponderada de todas as confianças de rostos reconhecidos, portanto, ela pode ser diferente da pontuação exibida na captura de imagem.", - "subLabelScore": "Pontuação da Subetiqueta" + "subLabelScore": "Pontuação da Subetiqueta", + "unknown": "Desconhecido" }, "documentTitle": "Biblioteca de rostos - Frigate", "uploadFaceImage": { @@ -37,7 +39,7 @@ "button": { "addFace": "Adicionar rosto", "uploadImage": "Carregar imagem", - "deleteFaceAttempts": "Apagar tentativas de detecção facial", + "deleteFaceAttempts": "Excluir rostos", "reprocessFace": "Reprocessar Rosto", "renameFace": "Renomear rosto", "deleteFace": "Excluir rosto" @@ -71,7 +73,7 @@ "deleteNameFailed": "Falha ao excluir nome: {{errorMessage}}", "addFaceLibraryFailed": "Falhou ao definir nome do rosto: {{errorMessage}}", "trainFailed": "Falhou ao treinar: {{errorMessage}}", - "updateFaceScoreFailed": "Falhou ao atualizar pontuação da face: {{errorMessage}}", + "updateFaceScoreFailed": "Falhou ao atualizar pontuação do rosto: {{errorMessage}}", "renameFaceFailed": "Falha ao renomear o rosto: {{errorMessage}}" } }, @@ -80,10 +82,22 @@ "steps": { "faceName": "Digite o Nome do Rosto", "uploadFace": "Carregar imagem do rosto", - "nextSteps": "Próximos passos" + "nextSteps": "Próximos passos", + "description": { + "uploadFace": "Carregue uma imagem de {{name}} que mostre a cara de frente. A imagem não precisa de ser cortada para mostrar apenas a cara." + } }, "renameFace": { "desc": "Entre com um novo nome para {{name}}", - "title": "Renomear Face" - } + "title": "Renomear rosto" + }, + "collections": "Coleções", + "deleteFaceAttempts": { + "title": "Excluir rostos", + "desc_one": "Tem a certeza que pretende apagar {{count}} cara? Esta ação não pode ser revertida.", + "desc_many": "Tem a certeza que pretende apagar {{count}} caras? Esta ação não pode ser revertida.", + "desc_other": "Tem a certeza que pretende apagar {{count}} caras? Esta ação não pode ser revertida." + }, + "nofaces": "Não tem caras disponíveis", + "pixels": "{{area}}px" } diff --git a/web/public/locales/pt/views/settings.json b/web/public/locales/pt/views/settings.json index e27e0f3dc..b1b326d92 100644 --- a/web/public/locales/pt/views/settings.json +++ b/web/public/locales/pt/views/settings.json @@ -6,10 +6,11 @@ "motionTuner": "Ajuste de movimento - Frigate", "object": "Depuração - Frigate", "authentication": "Configurações de autenticação - Frigate", - "general": "Configurações gerais - Frigate", + "general": "Configurações Gerais - Frigate", "frigatePlus": "Configurações do Frigate+ - Frigate", "default": "Configurações - Frigate", - "notifications": "Configuração de Notificações - Frigate" + "notifications": "Configuração de Notificações - Frigate", + "enrichments": "Configurações Avançadas" }, "menu": { "ui": "UI", @@ -20,7 +21,8 @@ "debug": "Depurar", "users": "Usuários", "notifications": "Notificações", - "frigateplus": "Frigate+" + "frigateplus": "Frigate+", + "enrichments": "Avançado" }, "dialog": { "unsavedChanges": { @@ -141,7 +143,8 @@ "title": "Classificação de Pássaros", "desc": "A classificação de aves/pássaros identifica aves conhecidas usando um modelo Tensorflow quantizado. Quando uma ave/ pássaro conhecida(o) for reconhecida(o), o seu nome comum será adicionado como um sub_rótulo. Estas informações estão incluídas na interface do utilizador, nos filtros e também nas notificações." }, - "restart_required": "Reinício necessário (configurações de classificação alteradas)" + "restart_required": "Reinício necessário (configurações de classificação alteradas)", + "unsavedChanges": "Alterações nas configurações de Classificação não estão salvas" }, "notification": { "globalSettings": { @@ -155,7 +158,8 @@ }, "notificationUnavailable": { "documentation": "Leia a documentação", - "title": "Notificações indisponíveis" + "title": "Notificações indisponíveis", + "desc": "As notificações push da Web exigem um contexto seguro (https://…). Esta é uma limitação do navegador. Acesse o Frigate com segurança para usar as notificações." }, "cameras": { "title": "Câmeras", @@ -169,20 +173,77 @@ "desc": "É necessário um e-mail válido que será utilizado para o notificar caso haja algum problema com o serviço push.", "title": "E-mail" }, - "title": "Notificações" + "title": "Notificações", + "unregisterDevice": "Cancelar o registro deste dispositivo", + "suspendTime": { + "5minutes": "Suspender por 5 minutos", + "1hour": "Suspender por 1 hora", + "12hours": "Suspender por 12 horas", + "untilRestart": "Suspender até reiniciar", + "10minutes": "Suspender por 10 minutos", + "suspend": "Suspender", + "30minutes": "Suspender por 30 minutos", + "24hours": "Suspender por 24 horas" + }, + "cancelSuspension": "Cancelar Suspensão", + "toast": { + "success": { + "registered": "Cadastrado com sucesso para receber notificações. É necessário reiniciar o Frigate antes que qualquer notificação (incluindo uma notificação de teste) possa ser enviada.", + "settingSaved": "As configurações de notificação foram salvas." + }, + "error": { + "registerFailed": "Falha ao salvar o registro de notificação." + } + }, + "sendTestNotification": "Envie uma notificação de teste", + "active": "Notificações ativas", + "suspended": "Notificações suspensas {{time}}", + "unsavedRegistrations": "Registros de notificação não salvos", + "unsavedChanges": "Registros de notificação não salvos" }, "frigatePlus": { "snapshotConfig": { "documentation": "Leia a documentação", "table": { "snapshots": "Snapshots", - "camera": "Câmera" - } + "camera": "Câmera", + "cleanCopySnapshots": "clean_copy Instantâneos" + }, + "title": "Configuração de instantâneo", + "desc": "O envio para o Frigate+ requer que tanto os snapshots quanto os snapshots clean_copy estejam habilitados na sua configuração.", + "cleanCopyWarning": "Algumas câmeras têm snapshots habilitados, mas a cópia limpa está desabilitada. Você precisa habilitar clean_copy na sua configuração de snapshot para poder enviar imagens dessas câmeras para o Frigate+." }, "toast": { "success": "As definições do Frigate+ foram guardadas. Reinicie o Frigate para aplicar as alterações.", "error": "Falha ao guardar alterações de configuração: {{errorMessage}}" - } + }, + "modelInfo": { + "modelType": "Tipo de modelo", + "trainDate": "Data do treino", + "title": "Informações do modelo", + "error": "Falha ao carregar informações do modelo", + "availableModels": "Modelos Disponíveis", + "baseModel": "Modelo Básico", + "plusModelType": { + "userModel": "Ajuste-Fino", + "baseModel": "Modelo Básico" + }, + "supportedDetectors": "Detectores Suportados", + "loading": "Carregando informações do modelo…", + "cameras": "Câmeras", + "loadingAvailableModels": "Carregando modelos disponíveis…", + "modelSelect": "Os modelos disponíveis no Frigate+ podem ser selecionados aqui. Observe que apenas modelos compatíveis com a configuração atual do seu detector podem ser selecionados." + }, + "title": "Fragata+ Configurações", + "apiKey": { + "validated": "A chave da API Frigate+ foi detectada e validada", + "notValidated": "A chave da API do Frigate+ não foi detectada ou não foi validada", + "desc": "A chave de API do Frigate+ permite a integração com o serviço Frigate+.", + "plusLink": "Saiba mais sobre o Frigate+", + "title": "Chave de API do Frigate+" + }, + "restart_required": "Reinicialização necessária (modelo Frigate+ alterado)", + "unsavedChanges": "Alterações nas configurações do Frigate+ não salvas" }, "masksAndZones": { "motionMasks": { @@ -247,10 +308,15 @@ "allObjects": "Todos os objetos", "speedEstimation": { "title": "Estimativa de velocidade", - "desc": "Ativar estimativa de velocidade para objetos nesta zona. A zona deve ter exatamente 4 pontos." + "desc": "Ativar estimativa de velocidade para objetos nesta zona. A zona deve ter exatamente 4 pontos.", + "docs": "Lê a documentação", + "lineBDistance": "Distância da Linha B ({{unit}})", + "lineCDistance": "Distância da Linha C ({{unit}})", + "lineDDistance": "Distância da Linha D ({{unit}})", + "lineADistance": "Distância da Linha A ({{unit}})" }, "speedThreshold": { - "title": "Limite de velocidade ({{unit}})", + "title": "Limiar de velocidade ({{unit}})", "desc": "Especifica uma velocidade mínima para que os objetos sejam considerados nesta zona.", "toast": { "error": { @@ -317,6 +383,11 @@ "error": { "mustBeFinished": "A criação do polígono deve ser concluída antes de salvar." } + }, + "speed": { + "error": { + "mustBeGreaterOrEqualTo": "O limiar de velocidade deve ser igual ou superior a 0,1." + } } }, "objectMasks": { @@ -345,14 +416,55 @@ }, "context": "As máscaras de filtro de objetos são usadas para filtrar falsos positivos para um determinado tipo de objeto com base na localização." }, - "restart_required": "É necessário reiniciar (máscaras/zonas alteradas)" + "restart_required": "É necessário reiniciar (máscaras/zonas alteradas)", + "motionMaskLabel": "Mascara movimento {{number}}", + "objectMaskLabel": "Mascara de objecto {{number}} ({{label}})" }, "debug": { "zones": { - "title": "Zonas" + "title": "Zonas", + "desc": "Mostrar um esboço de quaisquer zonas definidas" }, "timestamp": { - "title": "Carimbo de hora" + "title": "Carimbo de hora", + "desc": "Sobrepor um carimbo de data/hora na imagem" + }, + "title": "Depurar", + "detectorDesc": "O Frigate utiliza os seus detectores ({{detectors}}) para detectar objetos no fluxo de vídeo da sua câmara.", + "desc": "A vista de depuração apresenta uma vista em tempo real dos objetos localizados e das respectivas estatísticas. A lista de objetos apresenta um resumo dos objetos detectados em tempo real.", + "debugging": "A depurar", + "objectList": "Lista de Objetos", + "noObjects": "Sem Objetos", + "boundingBoxes": { + "title": "Caixas de contorno", + "desc": "Mostrar caixas de contorno à volta dos objetos seguidos", + "colors": { + "label": "Cores da caixa de contorno de objetos", + "info": "
  • Na inicialização, cores diferentes serão atribuídas a cada rótulo de objeto
  • Uma linha fina azul escura indica que o objeto não foi detectado neste momento
  • Uma linha fina cinza indica que o objeto foi detectado como estacionário
  • Uma linha grossa indica que o objeto está sujeito ao rastreamento automático (quando ativado)
  • " + } + }, + "objectShapeFilterDrawing": { + "tips": "Habilite esta opção para desenhar um retângulo na imagem da câmera para mostrar sua área e proporção. Esses valores podem ser usados para definir parâmetros de filtro de formato de objeto na sua configuração.", + "document": "Leia a documentação ", + "score": "Pontuação", + "ratio": "Razão", + "area": "Area", + "desc": "Desenhe um retângulo na imagem para visualizar detalhes da área e da proporção", + "title": "Desenho de filtro de forma de objeto" + }, + "regions": { + "title": "Regiões", + "desc": "Mostrar uma caixa da região de interesse enviada ao detector de objetos", + "tips": "

    Caixas de região


    Caixas verdes brilhantes serão sobrepostas em áreas de interesse no quadro que estão sendo enviadas ao detector de objetos.

    " + }, + "motion": { + "tips": "

    Caixas de movimento


    Caixas vermelhas serão sobrepostas em áreas do quadro onde o movimento está sendo detectado

    ", + "title": "Caixas de movimento", + "desc": "Mostrar caixas ao redor das áreas onde o movimento é detectado" + }, + "mask": { + "title": "Máscaras de movimento", + "desc": "Mostrar polígonos de máscara de movimento" } }, "camera": { @@ -373,8 +485,9 @@ "objectDetectionsTips": "Todos os objetos {{detectionsLabels}} não categorizados na câmera {{cameraName}} serão exibidos como Detecções, independentemente da zona em que se encontram.", "zoneObjectAlertsTips": "Todos os objetos {{alertsLabels}} detectados na zona {{zone}} na câmera {{cameraName}} serão exibidos como Alertas.", "toast": { - "success": "A configuração de classificação de revisão foi salva. Reinicie o Frigate para aplicar as alterações." - } + "success": "A configuração de Classificação de revisão foi salva. Reinicie o Frigate para aplicar as alterações." + }, + "unsavedChanges": "Configurações de classificação de revisão não salvas para {{camera}}" }, "title": "Configurações da câmera", "streams": { @@ -394,7 +507,8 @@ "desc": "O valor da área de contorno é usado para decidir quais grupos de pixels alterados são qualificados como movimento. Valor padrão: 10" }, "improveContrast": { - "title": "Melhorar o contraste" + "title": "Melhorar o contraste", + "desc": "Melhorar o contraste para cenas mais escuras. Defeito: ON" }, "Threshold": { "title": "Limite", @@ -404,6 +518,169 @@ "title": "O Frigate utiliza a detecção de movimento como uma primeira verificação para ver se há algo acontecendo no quadro que valha a pena ser verificado com a detecção de objetos.", "documentation": "Leia o Guia de Ajuste de Movimento" }, - "title": "Ajustador de Detecção de Movimento" + "title": "Ajustador de Detecção de Movimento", + "unsavedChanges": "Alterações do Ajuste de Movimento não guardadas ({{camera}})", + "toast": { + "success": "Definições para Movimento foram salvas." + } + }, + "enrichments": { + "faceRecognition": { + "desc": "O reconhecimento facial permite que as pessoas recebam nomes e, quando o rosto delas for reconhecido, o Frigate atribuirá o nome da pessoa como um subrótulo. Essas informações estão incluídas na interface do usuário, nos filtros e nas notificações.", + "modelSize": { + "small": { + "desc": "O uso de pequeno emprega um modelo de incorporação facial do FaceNet que funciona eficientemente na maioria das CPUs.", + "title": "pequeno" + }, + "large": { + "desc": "O uso de grande emprega um modelo de incorporação de rostos do ArcFace e será executado automaticamente na GPU, se aplicável.", + "title": "grande" + }, + "label": "Tamanho do modelo", + "desc": "O tamanho do modelo usado para reconhecimento facial." + }, + "title": "Reconhecimento facial", + "readTheDocumentation": "Leia a documentação" + }, + "semanticSearch": { + "modelSize": { + "small": { + "desc": "Usar pequeno emprega uma versão quantizada do modelo que usa menos RAM e roda mais rápido na CPU, com uma diferença muito insignificante na qualidade de incorporação.", + "title": "pequeno" + }, + "label": "Tamanho do modelo", + "desc": "O tamanho do modelo usado para incorporações de pesquisa semântica.", + "large": { + "title": "grande", + "desc": "Usar grande emprega o modelo Jina completo e será executado automaticamente na GPU, se aplicável." + } + }, + "reindexNow": { + "desc": "A reindexação regenerará os embeddings para todos os objetos rastreados. Esse processo é executado em segundo plano e pode sobrecarregar sua CPU e levar um tempo considerável, dependendo do número de objetos rastreados.", + "label": "Reindexar agora", + "confirmTitle": "Confirmar reindexação", + "confirmDesc": "Tem certeza de que deseja reindexar todos os objetos incorporados rastreados? Este processo será executado em segundo plano, mas pode sobrecarregar sua CPU e levar bastante tempo. Você pode acompanhar o progresso na página Explorar.", + "confirmButton": "Reindexar", + "success": "Reindexação iniciada com sucesso.", + "alreadyInProgress": "A reindexação já está em andamento.", + "error": "Falha ao iniciar a reindexação: {{errorMessage}}" + }, + "desc": "A Pesquisa Semântica no Frigate permite que você encontre objetos rastreados dentro dos seus itens de revisão usando a própria imagem, uma descrição de texto definida pelo usuário ou uma gerada automaticamente.", + "readTheDocumentation": "Leia a documentação", + "title": "Busca semântica" + }, + "licensePlateRecognition": { + "desc": "O Frigate pode reconhecer placas de veículos e adicionar automaticamente os caracteres detectados ao campo recognized_license_plate ou um nome conhecido como subrótulo para objetos do tipo carro. Um caso de uso comum pode ser a leitura de placas de carros entrando em uma garagem ou de carros passando por uma rua.", + "title": "Reconhecimento de placas", + "readTheDocumentation": "Leia a documentação" + }, + "birdClassification": { + "desc": "A classificação de aves identifica aves conhecidas usando um modelo quantizado do Tensorflow. Quando uma ave conhecida é reconhecida, seu nome comum é adicionado como um sub_label. Essas informações são incluídas na interface do usuário, nos filtros e nas notificações.", + "title": "Classificação de aves" + }, + "unsavedChanges": "Alterações nas configurações de enriquecimentos não salvos", + "title": "Configurações de enriquecimentos", + "restart_required": "Reinicialização necessária (configurações de enriquecimento alteradas)", + "toast": { + "success": "As configurações de enriquecimento foram salvas. Reinicie o Frigate para aplicar as alterações.", + "error": "Falha ao salvar alterações de configuração: {{errorMessage}}" + } + }, + "users": { + "dialog": { + "changeRole": { + "roleInfo": { + "admin": "Administrador", + "adminDesc": "Acesso total a todos os recursos.", + "viewer": "Visualizador", + "viewerDesc": "Limitado apenas a painéis ao vivo, revisão, exploração e exportações.", + "intro": "Selecione a função apropriada para este usuário:" + }, + "title": "Alterar função do usuário", + "desc": "Atualizar permissões para {{username}}", + "select": "Selecione uma função" + }, + "deleteUser": { + "title": "Excluir usuário", + "desc": "Esta ação não pode ser desfeita. Isso excluirá permanentemente a conta do usuário e removerá todos os dados associados.", + "warn": "Tem certeza de que deseja excluir {{username}}?" + }, + "form": { + "user": { + "title": "Nome de usuário", + "desc": "Somente letras, números, pontos e sublinhados são permitidos.", + "placeholder": "Digite o nome de usuário" + }, + "password": { + "strength": { + "weak": "Fraco", + "medium": "Médio", + "strong": "Forte", + "title": "Força da senha: ", + "veryStrong": "Muito forte" + }, + "notMatch": "As senhas não correspondem", + "title": "Senha", + "placeholder": "Digite a senha", + "confirm": { + "title": "Digite uma senha", + "placeholder": "Confirme sua senha" + }, + "match": "Correspondência de senhas" + }, + "newPassword": { + "title": "Nova Senha", + "placeholder": "Digite a nova senha", + "confirm": { + "placeholder": "Digite novamente a nova senha" + } + }, + "usernameIsRequired": "O nome de usuário é obrigatório", + "passwordIsRequired": "A senha é obrigatória" + }, + "createUser": { + "title": "Criar novo usuário", + "desc": "Adicione uma nova conta de usuário e especifique uma função para acesso a áreas da interface do usuário do Frigate.", + "usernameOnlyInclude": "O nome de usuário pode incluir apenas letras, números, . ou _", + "confirmPassword": "Por favor confirme sua senha" + }, + "passwordSetting": { + "setPassword": "Set Password", + "desc": "Crie uma senha forte para proteger esta conta.", + "updatePassword": "Atualizar senha para {{username}}", + "cannotBeEmpty": "A senha não pode ficar vazia", + "doNotMatch": "As senhas não correspondem" + } + }, + "management": { + "desc": "Gerenciar as contas de usuário desta instância do Frigate.", + "title": "Gerenciamento de usuários" + }, + "table": { + "noUsers": "Nenhum usuário encontrado.", + "password": "Senha", + "deleteUser": "Excluir usuário", + "changeRole": "Alterar função do usuário", + "username": "Nome de usuário", + "actions": "Ações", + "role": "Papel" + }, + "title": "Usuários", + "addUser": "Adicionar usuário", + "updatePassword": "Atualizar senha", + "toast": { + "success": { + "createUser": "Usuário {{user}} criado com sucesso", + "deleteUser": "Usuário {{user}} excluído com sucesso", + "updatePassword": "Senha atualizada com sucesso.", + "roleUpdated": "Função atualizada para {{user}}" + }, + "error": { + "setPasswordFailed": "Falha ao salvar a senha: {{errorMessage}}", + "createUserFailed": "Falha ao criar usuário: {{errorMessage}}", + "deleteUserFailed": "Falha ao excluir o usuário: {{errorMessage}}", + "roleUpdateFailed": "Falha ao atualizar a função: {{errorMessage}}" + } + } } } diff --git a/web/public/locales/pt/views/system.json b/web/public/locales/pt/views/system.json index 9d05cdee6..93183652b 100644 --- a/web/public/locales/pt/views/system.json +++ b/web/public/locales/pt/views/system.json @@ -72,7 +72,8 @@ "tips": { "title": "Explorar informações da Camera" }, - "streamDataFromFFPROBE": "Os dados de fluxo são obtidos com ffprobe." + "streamDataFromFFPROBE": "Os dados de fluxo são obtidos com ffprobe.", + "aspectRatio": "relação de aspeto" }, "framesAndDetections": "Quadros / Detecções", "label": {