diff --git a/web/public/locales/ro/audio.json b/web/public/locales/ro/audio.json
new file mode 100644
index 000000000..d49651c15
--- /dev/null
+++ b/web/public/locales/ro/audio.json
@@ -0,0 +1,34 @@
+{
+ "gunshot": "Foc de arma",
+ "machine_gun": "Mitraliera",
+ "speech": "Vorbire",
+ "babbling": "Murmur",
+ "yell": "Striga",
+ "bellow": "Sub",
+ "dog": "Caine",
+ "horse": "Cal",
+ "bird": "Pasare",
+ "sheep": "Oaie",
+ "boat": "Barca",
+ "motorcycle": "Motocicleta",
+ "bus": "Autobuz",
+ "train": "Tren",
+ "skateboard": "Skateboard",
+ "camera": "Camera",
+ "bicycle": "Bicicleta",
+ "car": "Masina",
+ "cat": "Pisica",
+ "animal": "Animal",
+ "goat": "Capra",
+ "keyboard": "Tastatura",
+ "vehicle": "Vehicul",
+ "sink": "Chiuveta",
+ "scissors": "Foarfeca",
+ "hair_dryer": "Uscator de Par",
+ "door": "Usa",
+ "blender": "Blender",
+ "mouse": "Mouse",
+ "clock": "Ceas",
+ "toothbrush": "Periuta de Dinti",
+ "bark": "Latrat"
+}
diff --git a/web/public/locales/ro/common.json b/web/public/locales/ro/common.json
new file mode 100644
index 000000000..26941ce3e
--- /dev/null
+++ b/web/public/locales/ro/common.json
@@ -0,0 +1,8 @@
+{
+ "time": {
+ "untilForTime": "Pana la {{time}}",
+ "untilForRestart": "Pana la repornirea Frigate.",
+ "untilRestart": "Pana la repornire",
+ "ago": "{{timeAgo}} in urma"
+ }
+}
diff --git a/web/public/locales/ro/components/auth.json b/web/public/locales/ro/components/auth.json
new file mode 100644
index 000000000..918a0435b
--- /dev/null
+++ b/web/public/locales/ro/components/auth.json
@@ -0,0 +1,15 @@
+{
+ "form": {
+ "user": "Utilizator",
+ "password": "Parola",
+ "login": "Logare",
+ "errors": {
+ "passwordRequired": "Parola este necesara",
+ "rateLimit": "Limita a fost depasita. Reincearca mai tarziu.",
+ "loginFailed": "Logare esuata",
+ "webUnknownError": "Eroare necunoscuta. Verifica logurile din consola.",
+ "usernameRequired": "Utilizatorul este necesar",
+ "unknownError": "Eroare necunoscuta. Verifica logurile."
+ }
+ }
+}
diff --git a/web/public/locales/ro/components/camera.json b/web/public/locales/ro/components/camera.json
new file mode 100644
index 000000000..8ee971300
--- /dev/null
+++ b/web/public/locales/ro/components/camera.json
@@ -0,0 +1,43 @@
+{
+ "group": {
+ "label": "Grupuri de Camere",
+ "add": "Adauga Grup de Camere",
+ "edit": "Editeaza Grupul de Camere",
+ "delete": {
+ "label": "Sterge Grupul de Camere",
+ "confirm": {
+ "title": "Confirma Stergerea",
+ "desc": "Esti sigur ca doresti sa stergi gruoul de camere {{name}}?"
+ }
+ },
+ "name": {
+ "label": "Nume",
+ "placeholder": "Introdu un nume...",
+ "errorMessage": {
+ "mustLeastCharacters": "Numele grupului de cmere trebuie sa sontina minim 2 caractere.",
+ "exists": "Numele grupului de camere exista deja.",
+ "nameMustNotPeriod": "Numele grupului de camere nu trebuia sa contina punct.",
+ "invalid": "Nume invalid pentru grupul de camere."
+ }
+ },
+ "cameras": {
+ "label": "Camere",
+ "desc": "Selecteaza camere pentru acest grup."
+ },
+ "icon": "Pictograma",
+ "success": "Grupul de camere {{name}}) a fost salvat.",
+ "camera": {
+ "setting": {
+ "label": "Setarile de Stream ale Camerei",
+ "title": "{{cameraName}} Setari de Stream"
+ }
+ }
+ },
+ "debug": {
+ "options": {
+ "label": "Setari",
+ "title": "Optiuni",
+ "showOptions": "Arata Optiuni"
+ }
+ }
+}
diff --git a/web/public/locales/ro/components/dialog.json b/web/public/locales/ro/components/dialog.json
new file mode 100644
index 000000000..203cb5424
--- /dev/null
+++ b/web/public/locales/ro/components/dialog.json
@@ -0,0 +1,40 @@
+{
+ "restart": {
+ "title": "Esti sigur ca doresti sa repornesti Frigate?",
+ "button": "Reporneste",
+ "restarting": {
+ "title": "Frigate Reporneste",
+ "content": "Aceasta pagina se va reincarca in {{countdown}} secunde.",
+ "button": "Forteaza Reincarcarea Acum"
+ }
+ },
+ "explore": {
+ "plus": {
+ "review": {
+ "true": {
+ "label": "Confirma aceasta eticheta pentru Frigate Plus",
+ "true_one": "Asta e o {{label}}",
+ "true_few": "Astea sunt {{label}}",
+ "true_other": "Astea sunt {{label}}"
+ },
+ "false": {
+ "label": "Nu confirma aceasta eticheta pentru Frigate Plus",
+ "false_one": "Asta nu este {{label}}",
+ "false_few": "Astea nu sunt {{label}}",
+ "false_other": "Astea nu sunt {{label}}"
+ },
+ "state": {
+ "submitted": "Trimis"
+ }
+ },
+ "submitToPlus": {
+ "label": "Trimite catre Frigate+"
+ }
+ }
+ },
+ "recording": {
+ "button": {
+ "deleteNow": "Sterge Acum"
+ }
+ }
+}
diff --git a/web/public/locales/ro/components/filter.json b/web/public/locales/ro/components/filter.json
new file mode 100644
index 000000000..785575a32
--- /dev/null
+++ b/web/public/locales/ro/components/filter.json
@@ -0,0 +1,10 @@
+{
+ "filter": "Filtru",
+ "labels": {
+ "label": "Etichete",
+ "all": {
+ "title": "Toate etichetele",
+ "short": "Etichete"
+ }
+ }
+}
diff --git a/web/public/locales/ro/components/icons.json b/web/public/locales/ro/components/icons.json
new file mode 100644
index 000000000..04b42b26f
--- /dev/null
+++ b/web/public/locales/ro/components/icons.json
@@ -0,0 +1,8 @@
+{
+ "iconPicker": {
+ "selectIcon": "Selecteaza o pictograma",
+ "search": {
+ "placeholder": "Cauta o pictograma..."
+ }
+ }
+}
diff --git a/web/public/locales/ro/components/input.json b/web/public/locales/ro/components/input.json
new file mode 100644
index 000000000..8faa6219a
--- /dev/null
+++ b/web/public/locales/ro/components/input.json
@@ -0,0 +1,10 @@
+{
+ "button": {
+ "downloadVideo": {
+ "label": "Descarca Video",
+ "toast": {
+ "success": "A inceput descarcarea clipului ce contine articolul revizuit."
+ }
+ }
+ }
+}
diff --git a/web/public/locales/ro/components/player.json b/web/public/locales/ro/components/player.json
new file mode 100644
index 000000000..8a1bea151
--- /dev/null
+++ b/web/public/locales/ro/components/player.json
@@ -0,0 +1,51 @@
+{
+ "noRecordingsFoundForThisTime": "Nu au fost gasite inregistrari in perioada de timp mentionata",
+ "noPreviewFound": "Nu a fost gasita o Previzualizare",
+ "noPreviewFoundFor": "Nu exista Previzualizari pentru {{cameraName}}",
+ "submitFrigatePlus": {
+ "title": "Trimiteti acest cadru catre Frigate+?",
+ "submit": "Trimite"
+ },
+ "livePlayerRequiredIOSVersion": "iOS 17.1 sau mai recent este necesar pentru acest tip de stream live.",
+ "streamOffline": {
+ "title": "Stream Offline",
+ "desc": "Nici un cadru nu a fost receptionat de la streamul {{cameraName}} detect
, verifica logurile de eroare"
+ },
+ "cameraDisabled": "Camera este dezactivata",
+ "stats": {
+ "streamType": {
+ "title": "Tip Stream:",
+ "short": "Tip"
+ },
+ "bandwidth": {
+ "title": "Latime de Banda:",
+ "short": "Latime de Banda"
+ },
+ "latency": {
+ "title": "Latenta:",
+ "value": "{{seconds}} secunde",
+ "short": {
+ "title": "Latenta",
+ "value": "{{seconds}} sec"
+ }
+ },
+ "totalFrames": "Total Cadre:",
+ "droppedFrames": {
+ "title": "Cadre Pierdute:",
+ "short": {
+ "title": "Pierdut",
+ "value": "{{droppedFrames}} cadre"
+ }
+ },
+ "decodedFrames": "Cadre Decodate:",
+ "droppedFrameRate": "Rata de Cadre Pierdute:"
+ },
+ "toast": {
+ "error": {
+ "submitFrigatePlusFailed": "Eraoare trimitere Cadru catre Frigate+"
+ },
+ "success": {
+ "submittedFrigatePlus": "Cadru trimis cu Succes catre Frigate+"
+ }
+ }
+}
diff --git a/web/public/locales/ro/objects.json b/web/public/locales/ro/objects.json
new file mode 100644
index 000000000..b934485d0
--- /dev/null
+++ b/web/public/locales/ro/objects.json
@@ -0,0 +1,120 @@
+{
+ "person": "Persoana",
+ "bicycle": "Bicicleta",
+ "car": "Masina",
+ "airplane": "Avion",
+ "bus": "Autobuz",
+ "train": "Tren",
+ "boat": "Barca",
+ "fire_hydrant": "Hidrant",
+ "street_sign": "Semn de Circulatie",
+ "stop_sign": "Semn de Stop",
+ "parking_meter": "Automat de Parcare",
+ "bench": "Bancheta",
+ "bird": "Pasare",
+ "cat": "Pisica",
+ "dog": "Caine",
+ "horse": "Cal",
+ "cow": "Vaca",
+ "elephant": "Elefant",
+ "bear": "Urs",
+ "giraffe": "Girafa",
+ "hat": "Palarie",
+ "backpack": "Rucsac",
+ "umbrella": "Umbrela",
+ "shoe": "Pantof",
+ "eye_glasses": "Ochelari",
+ "tie": "Cravata",
+ "suitcase": "Servieta",
+ "frisbee": "Frisbee",
+ "skis": "Schiuri",
+ "snowboard": "Placa de Snowboard",
+ "sports_ball": "Minge pentru Sport",
+ "kite": "Zmeu",
+ "baseball_bat": "Bata de Baseball",
+ "baseball_glove": "Manusa de Baseball",
+ "skateboard": "Skateboard",
+ "surfboard": "Placa de Surf",
+ "tennis_racket": "Racheta de Tenis",
+ "bottle": "Sticla",
+ "plate": "Placa",
+ "wine_glass": "Pahar de Vin",
+ "cup": "Ceasca",
+ "fork": "Furculita",
+ "knife": "Cutit",
+ "spoon": "Lingura",
+ "bowl": "Castron",
+ "banana": "Banana",
+ "apple": "Mar",
+ "motorcycle": "Motocicleta",
+ "traffic_light": "Semafor",
+ "sheep": "Oaie",
+ "zebra": "Zebra",
+ "handbag": "Geanta de mana",
+ "sandwich": "Sandwich",
+ "gls": "GLS",
+ "dpd": "DPD",
+ "sink": "Chiuveta",
+ "raccoon": "Raton",
+ "orange": "Portocala",
+ "laptop": "Laptop",
+ "fox": "Vulpe",
+ "animal": "Animal",
+ "package": "Pachet",
+ "remote": "Telecomanda",
+ "toilet": "Toaleta",
+ "amazon": "Amazon",
+ "broccoli": "Broccoli",
+ "carrot": "Morcov",
+ "hot_dog": "Hot Dog",
+ "dining_table": "Masa",
+ "hair_dryer": "Uscator de Par",
+ "pizza": "Pizza",
+ "donut": "Gogoasa",
+ "teddy_bear": "Ursulet de Plus",
+ "waste_bin": "Tomberon",
+ "cake": "Tort",
+ "window": "Fereastra",
+ "chair": "Scaun",
+ "door": "Usa",
+ "on_demand": "La Cerere",
+ "usps": "USPS",
+ "couch": "Canapea",
+ "blender": "Blender",
+ "scissors": "Foarfeca",
+ "cell_phone": "Telefon Mobil",
+ "potted_plant": "Ghiveci de Plante",
+ "bed": "Pat",
+ "refrigerator": "Frigider",
+ "mirror": "Oglinda",
+ "desk": "Birou",
+ "tv": "TV",
+ "ups": "UPS",
+ "fedex": "FedEx",
+ "mouse": "Mouse",
+ "keyboard": "Tastatura",
+ "microwave": "Microunde",
+ "oven": "Cuptor",
+ "rabbit": "Iepure",
+ "robot_lawnmower": "Robot de Tuns Iarba",
+ "toaster": "Prajitor de Paine",
+ "book": "Carte",
+ "clock": "Ceas",
+ "vase": "Vaza",
+ "toothbrush": "Periuta de Dinti",
+ "hair_brush": "Perie de Par",
+ "vehicle": "Vehicul",
+ "squirrel": "Veverita",
+ "deer": "Caprioara",
+ "bark": "Latrat",
+ "goat": "Capra",
+ "bbq_grill": "Gratar",
+ "face": "Fata",
+ "purolator": "Purolator",
+ "license_plate": "Numar de Inmatriculare",
+ "dhl": "DHL",
+ "an_post": "An Post",
+ "postnl": "PostNL",
+ "nzpost": "NZPost",
+ "postnord": "PostNord"
+}
diff --git a/web/public/locales/ro/views/configEditor.json b/web/public/locales/ro/views/configEditor.json
new file mode 100644
index 000000000..45f667989
--- /dev/null
+++ b/web/public/locales/ro/views/configEditor.json
@@ -0,0 +1,15 @@
+{
+ "documentTitle": "Editor Setari - Frigate",
+ "configEditor": "Editor Setari",
+ "copyConfig": "Copiaza Setarile",
+ "saveAndRestart": "Salveaza & Reporneste",
+ "saveOnly": "Doar Salveaza",
+ "toast": {
+ "success": {
+ "copyToClipboard": "Setari copiate in clipboard."
+ },
+ "error": {
+ "savingError": "Eroare la salvarea setarilor"
+ }
+ }
+}
diff --git a/web/public/locales/ro/views/events.json b/web/public/locales/ro/views/events.json
new file mode 100644
index 000000000..7d41a7d7b
--- /dev/null
+++ b/web/public/locales/ro/views/events.json
@@ -0,0 +1,35 @@
+{
+ "alerts": "Alerte",
+ "motion": {
+ "label": "Miscare",
+ "only": "Doar Miscare"
+ },
+ "allCameras": "Toate Camerele",
+ "empty": {
+ "alert": "Nu sunt alerte de revizuit",
+ "detection": "Nu sunt detectii de revizuit",
+ "motion": "Nu au fost gasite date despre miscare"
+ },
+ "timeline": "Cronologie",
+ "timeline.aria": "Selecteaza Cronologie",
+ "events": {
+ "aria": "Selecteaza Evenimente",
+ "noFoundForTimePeriod": "Niciun eveniment gasit pentru acest interval de timp.",
+ "label": "Evenimente"
+ },
+ "documentTitle": "Revizuieste - Frigate",
+ "recordings": {
+ "documentTitle": "Inregistrari - frigate"
+ },
+ "calendarFilter": {
+ "last24Hours": "Ultimele 24 de ore"
+ },
+ "markAsReviewed": "Marcheaza ca Revizuit",
+ "markTheseItemsAsReviewed": "Marcheaza aceste articole ca revizuite",
+ "newReviewItems": {
+ "label": "Vezi articole noi de revizuit",
+ "button": "Articole Noi de Revizuit"
+ },
+ "camera": "Camera",
+ "detections": "Detectii"
+}
diff --git a/web/public/locales/ro/views/explore.json b/web/public/locales/ro/views/explore.json
new file mode 100644
index 000000000..6ecec564d
--- /dev/null
+++ b/web/public/locales/ro/views/explore.json
@@ -0,0 +1,20 @@
+{
+ "documentTitle": "Exploreaza - Frigate",
+ "generativeAI": "AI Generativ",
+ "exploreIsUnavailable": {
+ "title": "Explorarea este Indisponibila",
+ "embeddingsReindexing": {
+ "startingUp": "Porneste...",
+ "estimatedTime": "Timp ramas estimat:",
+ "finishingShortly": "Termina curand"
+ }
+ },
+ "type": {
+ "details": "detalii"
+ },
+ "objectLifecycle": {
+ "lifecycleItemDesc": {
+ "visible": "{{label}} detectata"
+ }
+ }
+}
diff --git a/web/public/locales/ro/views/exports.json b/web/public/locales/ro/views/exports.json
new file mode 100644
index 000000000..acc8a9c79
--- /dev/null
+++ b/web/public/locales/ro/views/exports.json
@@ -0,0 +1,17 @@
+{
+ "search": "Cauta",
+ "documentTitle": "Export - Frigate",
+ "noExports": "Nu au fost gasite exporturi",
+ "deleteExport": "Sterge Export",
+ "deleteExport.desc": "Esti sigur ca vrei sa stergi {{exportName}}?",
+ "editExport": {
+ "title": "Redenumeste Exportul",
+ "saveExport": "Salveaza Export",
+ "desc": "Introdu un nume nou pentru acest Export."
+ },
+ "toast": {
+ "error": {
+ "renameExportFailed": "Eroare redenumire export: {{errorMessage}}"
+ }
+ }
+}
diff --git a/web/public/locales/ro/views/faceLibrary.json b/web/public/locales/ro/views/faceLibrary.json
new file mode 100644
index 000000000..d5128c338
--- /dev/null
+++ b/web/public/locales/ro/views/faceLibrary.json
@@ -0,0 +1,9 @@
+{
+ "description": {
+ "addFace": "Parcurge adaugare unei colectii noi la Libraria de Fete",
+ "placeholder": "Introduceti un nume pentru aceasta colectie"
+ },
+ "details": {
+ "person": "Persoana"
+ }
+}
diff --git a/web/public/locales/ro/views/live.json b/web/public/locales/ro/views/live.json
new file mode 100644
index 000000000..21ffaa8b8
--- /dev/null
+++ b/web/public/locales/ro/views/live.json
@@ -0,0 +1,5 @@
+{
+ "documentTitle": "Live - Frigate",
+ "documentTitle.withCamera": "{{camera}} - Live - Frigate",
+ "lowBandwidthMode": "Mod Latime de Banda Limitata"
+}
diff --git a/web/public/locales/ro/views/recording.json b/web/public/locales/ro/views/recording.json
new file mode 100644
index 000000000..1b96b7c42
--- /dev/null
+++ b/web/public/locales/ro/views/recording.json
@@ -0,0 +1,12 @@
+{
+ "filter": "Filtru",
+ "export": "Exporta",
+ "calendar": "Calendar",
+ "filters": "Filtre",
+ "toast": {
+ "error": {
+ "endTimeMustAfterStartTime": "Timpul de sfarsit trebuie sa fie dupa cel de start",
+ "noValidTimeSelected": "Niciun interval de timp valid nu a fost selectat"
+ }
+ }
+}
diff --git a/web/public/locales/ro/views/search.json b/web/public/locales/ro/views/search.json
new file mode 100644
index 000000000..e5131006f
--- /dev/null
+++ b/web/public/locales/ro/views/search.json
@@ -0,0 +1,5 @@
+{
+ "search": "Cauta",
+ "savedSearches": "Cautari Salvate",
+ "searchFor": "Cauta {{inputValue}}"
+}
diff --git a/web/public/locales/ro/views/settings.json b/web/public/locales/ro/views/settings.json
new file mode 100644
index 000000000..9f9f7d1f5
--- /dev/null
+++ b/web/public/locales/ro/views/settings.json
@@ -0,0 +1,7 @@
+{
+ "documentTitle": {
+ "authentication": "Setari de Autentificcare - Frigate",
+ "camera": "Setari Camera - Frigate",
+ "default": "Setari - Frigate"
+ }
+}
diff --git a/web/public/locales/ro/views/system.json b/web/public/locales/ro/views/system.json
new file mode 100644
index 000000000..2c1f00c5a
--- /dev/null
+++ b/web/public/locales/ro/views/system.json
@@ -0,0 +1,7 @@
+{
+ "documentTitle": {
+ "storage": "Statistici Stocare - Frigate",
+ "cameras": "Statistici Camere - Frigate",
+ "general": "Statistici Generale - Frigate"
+ }
+}