From 5ab8649287fc371fdc6cfecb65724f28a0f223b2 Mon Sep 17 00:00:00 2001 From: Filippo Pisano Date: Mon, 3 Nov 2025 11:37:52 +0100 Subject: [PATCH 1/4] Add support to italian language --- frontend/app/src/i18n/it/activitiesView.json | 14 +++ frontend/app/src/i18n/it/activityItems.json | 43 +++++++++ frontend/app/src/i18n/it/activityView.json | 13 +++ .../activities/activitiesTableComponent.json | 12 +++ .../activityBellowMPillsComponent.json | 25 ++++++ .../activities/activityLapsComponent.json | 14 +++ .../activityMandAbovePillsComponent.json | 17 ++++ .../activities/activityMapComponent.json | 8 ++ .../activities/activitySummaryComponent.json | 31 +++++++ .../activityWorkoutStepsComponent.json | 20 +++++ .../addGearToActivityModalComponent.json | 6 ++ .../modals/editActivityModalComponent.json | 69 ++++++++++++++ .../followers/followersListComponent.json | 16 ++++ .../gearComponentAddEditModalComponent.json | 19 ++++ .../gears/gearComponentListComponent.json | 79 ++++++++++++++++ .../gears/gearsAddEditGearModalComponent.json | 29 ++++++ .../components/gears/gearsListComponent.json | 16 ++++ .../health/healthDashboardZoneComponent.json | 13 +++ .../health/healthSideBarComponent.json | 4 + .../healthWeightAddEditModalComponent.json | 8 ++ .../healthWeightListComponent.json | 9 ++ .../health/healthWeightZoneComponent.json | 6 ++ .../navbar/navbarBottomMobileComponent.json | 7 ++ .../it/components/navbar/navbarComponent.json | 13 +++ .../it/components/noItemsFoundComponent.json | 4 + ...pApprovalRequestNotificationComponent.json | 4 + .../navbarNotificationsComponent.json | 6 ++ ...wAcceptedRequestNotificationComponent.json | 4 + ...plicateStartTimeNotificationComponent.json | 4 + .../newActivityNotificationComponent.json | 4 + ...wFollowerRequestNotificationComponent.json | 4 + .../settingsLanguageSwitcherComponent.json | 3 + .../settingsThemeSwitcherComponent.json | 6 ++ .../settings/settingsImportZoneComponent.json | 18 ++++ .../garminConnectLoginModalComponent.json | 14 +++ .../settingsIntegrationsZoneComponent.json | 47 ++++++++++ .../settingsSecurityZoneComponent.json | 31 +++++++ .../settingsServerSettingsZoneComponent.json | 29 ++++++ .../settings/settingsSideBarComponent.json | 10 +++ .../settings/settingsUserGoals.json | 7 ++ .../goalsAddEditGoalModalComponent.json | 30 +++++++ .../goalsListComponent.json | 5 ++ .../settingsUserProfileZoneComponent.json | 89 +++++++++++++++++++ .../userSessionsListComponent.json | 5 ++ .../usersAddEditUserModalComponent.json | 52 +++++++++++ ...usersChangeUserPasswordModalComponent.json | 10 +++ .../settingsUsersZone/usersListComponent.json | 22 +++++ .../usersPasswordRequirementsComponent.json | 7 ++ .../settings/settingsUsersZoneComponent.json | 10 +++ .../users/userDistanceStatsComponent.json | 4 + .../users/userGoalsStatsComponent.json | 13 +++ .../src/i18n/it/emailVerificationView.json | 8 ++ frontend/app/src/i18n/it/gears/gearView.json | 31 +++++++ frontend/app/src/i18n/it/gears/gearsView.json | 13 +++ frontend/app/src/i18n/it/generalItems.json | 79 ++++++++++++++++ frontend/app/src/i18n/it/healthView.json | 5 ++ frontend/app/src/i18n/it/homeView.json | 18 ++++ frontend/app/src/i18n/it/loginView.json | 37 ++++++++ frontend/app/src/i18n/it/notFoundView.json | 5 ++ frontend/app/src/i18n/it/resetPassword.json | 11 +++ frontend/app/src/i18n/it/searchView.json | 37 ++++++++ frontend/app/src/i18n/it/settingsView.json | 3 + frontend/app/src/i18n/it/signupView.json | 33 +++++++ .../i18n/it/strava/stravaCallbackView.json | 4 + frontend/app/src/i18n/it/summaryView.json | 44 +++++++++ frontend/app/src/i18n/it/userView.json | 32 +++++++ 66 files changed, 1293 insertions(+) create mode 100644 frontend/app/src/i18n/it/activitiesView.json create mode 100644 frontend/app/src/i18n/it/activityItems.json create mode 100644 frontend/app/src/i18n/it/activityView.json create mode 100644 frontend/app/src/i18n/it/components/activities/activitiesTableComponent.json create mode 100644 frontend/app/src/i18n/it/components/activities/activityBellowMPillsComponent.json create mode 100644 frontend/app/src/i18n/it/components/activities/activityLapsComponent.json create mode 100644 frontend/app/src/i18n/it/components/activities/activityMandAbovePillsComponent.json create mode 100644 frontend/app/src/i18n/it/components/activities/activityMapComponent.json create mode 100644 frontend/app/src/i18n/it/components/activities/activitySummaryComponent.json create mode 100644 frontend/app/src/i18n/it/components/activities/activityWorkoutStepsComponent.json create mode 100644 frontend/app/src/i18n/it/components/activities/modals/addGearToActivityModalComponent.json create mode 100644 frontend/app/src/i18n/it/components/activities/modals/editActivityModalComponent.json create mode 100644 frontend/app/src/i18n/it/components/followers/followersListComponent.json create mode 100644 frontend/app/src/i18n/it/components/gears/gearComponentAddEditModalComponent.json create mode 100644 frontend/app/src/i18n/it/components/gears/gearComponentListComponent.json create mode 100644 frontend/app/src/i18n/it/components/gears/gearsAddEditGearModalComponent.json create mode 100644 frontend/app/src/i18n/it/components/gears/gearsListComponent.json create mode 100644 frontend/app/src/i18n/it/components/health/healthDashboardZoneComponent.json create mode 100644 frontend/app/src/i18n/it/components/health/healthSideBarComponent.json create mode 100644 frontend/app/src/i18n/it/components/health/healthWeightZone/healthWeightAddEditModalComponent.json create mode 100644 frontend/app/src/i18n/it/components/health/healthWeightZone/healthWeightListComponent.json create mode 100644 frontend/app/src/i18n/it/components/health/healthWeightZoneComponent.json create mode 100644 frontend/app/src/i18n/it/components/navbar/navbarBottomMobileComponent.json create mode 100644 frontend/app/src/i18n/it/components/navbar/navbarComponent.json create mode 100644 frontend/app/src/i18n/it/components/noItemsFoundComponent.json create mode 100644 frontend/app/src/i18n/it/components/notifications/adminNewSignUpApprovalRequestNotificationComponent.json create mode 100644 frontend/app/src/i18n/it/components/notifications/navbarNotificationsComponent.json create mode 100644 frontend/app/src/i18n/it/components/notifications/newAcceptedRequestNotificationComponent.json create mode 100644 frontend/app/src/i18n/it/components/notifications/newActivityDuplicateStartTimeNotificationComponent.json create mode 100644 frontend/app/src/i18n/it/components/notifications/newActivityNotificationComponent.json create mode 100644 frontend/app/src/i18n/it/components/notifications/newFollowerRequestNotificationComponent.json create mode 100644 frontend/app/src/i18n/it/components/settings/settingsGeneralZone/settingsLanguageSwitcherComponent.json create mode 100644 frontend/app/src/i18n/it/components/settings/settingsGeneralZone/settingsThemeSwitcherComponent.json create mode 100644 frontend/app/src/i18n/it/components/settings/settingsImportZoneComponent.json create mode 100644 frontend/app/src/i18n/it/components/settings/settingsIntegrationsZone/garminConnectLoginModalComponent.json create mode 100644 frontend/app/src/i18n/it/components/settings/settingsIntegrationsZoneComponent.json create mode 100644 frontend/app/src/i18n/it/components/settings/settingsSecurityZoneComponent.json create mode 100644 frontend/app/src/i18n/it/components/settings/settingsServerSettingsZoneComponent.json create mode 100644 frontend/app/src/i18n/it/components/settings/settingsSideBarComponent.json create mode 100644 frontend/app/src/i18n/it/components/settings/settingsUserGoals.json create mode 100644 frontend/app/src/i18n/it/components/settings/settingsUserGoalsZone/goalsAddEditGoalModalComponent.json create mode 100644 frontend/app/src/i18n/it/components/settings/settingsUserGoalsZone/goalsListComponent.json create mode 100644 frontend/app/src/i18n/it/components/settings/settingsUserProfileZoneComponent.json create mode 100644 frontend/app/src/i18n/it/components/settings/settingsUserSessionsZone/userSessionsListComponent.json create mode 100644 frontend/app/src/i18n/it/components/settings/settingsUsersZone/usersAddEditUserModalComponent.json create mode 100644 frontend/app/src/i18n/it/components/settings/settingsUsersZone/usersChangeUserPasswordModalComponent.json create mode 100644 frontend/app/src/i18n/it/components/settings/settingsUsersZone/usersListComponent.json create mode 100644 frontend/app/src/i18n/it/components/settings/settingsUsersZone/usersPasswordRequirementsComponent.json create mode 100644 frontend/app/src/i18n/it/components/settings/settingsUsersZoneComponent.json create mode 100644 frontend/app/src/i18n/it/components/users/userDistanceStatsComponent.json create mode 100644 frontend/app/src/i18n/it/components/users/userGoalsStatsComponent.json create mode 100644 frontend/app/src/i18n/it/emailVerificationView.json create mode 100644 frontend/app/src/i18n/it/gears/gearView.json create mode 100644 frontend/app/src/i18n/it/gears/gearsView.json create mode 100644 frontend/app/src/i18n/it/generalItems.json create mode 100644 frontend/app/src/i18n/it/healthView.json create mode 100644 frontend/app/src/i18n/it/homeView.json create mode 100644 frontend/app/src/i18n/it/loginView.json create mode 100644 frontend/app/src/i18n/it/notFoundView.json create mode 100644 frontend/app/src/i18n/it/resetPassword.json create mode 100644 frontend/app/src/i18n/it/searchView.json create mode 100644 frontend/app/src/i18n/it/settingsView.json create mode 100644 frontend/app/src/i18n/it/signupView.json create mode 100644 frontend/app/src/i18n/it/strava/stravaCallbackView.json create mode 100644 frontend/app/src/i18n/it/summaryView.json create mode 100644 frontend/app/src/i18n/it/userView.json diff --git a/frontend/app/src/i18n/it/activitiesView.json b/frontend/app/src/i18n/it/activitiesView.json new file mode 100644 index 000000000..2e0392958 --- /dev/null +++ b/frontend/app/src/i18n/it/activitiesView.json @@ -0,0 +1,14 @@ +{ + "title": "Attività", + "filterLabelType": "Tipo", + "filterOptionAllTypes": "Tutti i tipi", + "filterLabelFromDate": "Data da", + "filterLabelToDate": "Data a", + "filterLabelNameLocation": "Nome o località", + "filterPlaceholderNameLocation": "es., Corsa mattutina", + "buttonClear": "Cancella", + "buttonApply": "Applica", + "errorFailedFetchActivityTypes": "Impossibile recuperare i tipi di attività", + "errorUpdatingActivities": "Impossibile aggiornare le attività", + "errorFetchingActivities": "Impossibile recuperare le attività utente" +} diff --git a/frontend/app/src/i18n/it/activityItems.json b/frontend/app/src/i18n/it/activityItems.json new file mode 100644 index 000000000..c357ac116 --- /dev/null +++ b/frontend/app/src/i18n/it/activityItems.json @@ -0,0 +1,43 @@ +{ + "run": "Corsa", + "trailRun": "Trail run", + "virtualRun": "Corsa virtuale", + "ride": "Ciclismo", + "gravelRide": "Gravel", + "mtbRide": "MTB", + "virtualRide": "Ciclismo virtuale", + "lapSwimming": "Nuoto in piscina", + "openWaterSwimming": "Nuoto in acque libere", + "workout": "Allenamento", + "walk": "Camminata", + "indoorWalk": "Camminata al coperto", + "hike": "Escursione", + "rowing": "Canottaggio", + "yoga": "Yoga", + "alpineSki": "Sci alpino", + "nordicSki": "Sci nordico", + "snowboard": "Snowboard", + "transition": "Transizione", + "strengthTraining": "Allenamento forza", + "crossfit": "CrossFit", + "tennis": "Tennis", + "tableTennis": "Ping pong", + "badminton": "Badminton", + "squash": "Squash", + "racquetball": "Racquetball", + "pickleball": "Pickleball", + "commutingRide": "Ciclismo pendolare", + "indoorRide": "Ciclismo al coperto", + "mixedSurfaceRide": "Ciclismo su terreno misto", + "windsurf": "Windsurf", + "standUpPaddling": "Stand up paddle", + "surf": "Surf", + "trackRun": "Corsa su pista", + "ebikeRide": "E-bike", + "ebikeMountainRide": "E-MTB", + "iceSkate": "Pattinaggio su ghiaccio", + "soccer": "Calcio", + "padel": "Padel", + "treadmillRun": "Corsa su tapis roulant", + "labelWorkout": " allenamento" +} diff --git a/frontend/app/src/i18n/it/activityView.json b/frontend/app/src/i18n/it/activityView.json new file mode 100644 index 000000000..9512c23e1 --- /dev/null +++ b/frontend/app/src/i18n/it/activityView.json @@ -0,0 +1,13 @@ +{ + "labelGear": "Attrezzatura", + "labelGearNotSet": "Non impostata", + "modalLabelDeleteGear": "Elimina attrezzatura dall'attività", + "modalLabelDeleteGearBody": "Sei sicuro di voler rimuovere l'attrezzatura dall'attività?", + "modalLabelDeleteGearButton": "Elimina attrezzatura", + "successMessageGearAdded": "Attrezzatura aggiunta all'attività", + "successMessageGearDeleted": "Attrezzatura eliminata dall'attività", + "errorMessageDeleteGear": "Errore nell'eliminazione dell'attrezzatura dall'attività", + "errorMessageActivityNotFound": "Attività non trovata", + "alertPrivacyMessage": "Hai nascosto informazioni in questa attività. Puoi vederle tu, ma gli altri no.", + "isHiddenMessage": "Questa attività è nascosta. Probabilmente perché è un duplicato o è stata nascosta dall'utente." +} diff --git a/frontend/app/src/i18n/it/components/activities/activitiesTableComponent.json b/frontend/app/src/i18n/it/components/activities/activitiesTableComponent.json new file mode 100644 index 000000000..01a8751ad --- /dev/null +++ b/frontend/app/src/i18n/it/components/activities/activitiesTableComponent.json @@ -0,0 +1,12 @@ +{ + "headerType": "Tipo", + "headerName": "Nome", + "headerLocation": "Località", + "headerStartTime": "Ora di inizio", + "headerDuration": "Durata", + "headerDistance": "Distanza", + "headerPace": "Ritmo/Velocità", + "headerCalories": "Calorie", + "headerElevation": "Elevazione", + "headerAvgHr": "FC media" +} diff --git a/frontend/app/src/i18n/it/components/activities/activityBellowMPillsComponent.json b/frontend/app/src/i18n/it/components/activities/activityBellowMPillsComponent.json new file mode 100644 index 000000000..04b538fd4 --- /dev/null +++ b/frontend/app/src/i18n/it/components/activities/activityBellowMPillsComponent.json @@ -0,0 +1,25 @@ +{ + "subTitlePace": "Ritmo", + "labelAvgPace": "Ritmo medio", + "labelMovingTime": "Tempo in movimento", + "labelElapsedTime": "Tempo trascorso", + "subTitleSpeed": "Velocità", + "labelAvgSpeed": "Velocità media", + "labelMaxSpeed": "Velocità massima", + "subTitleHeartRate": "Frequenza cardiaca", + "labelAvgHeartRate": "Frequenza cardiaca media", + "labelMaxHeartRate": "Frequenza cardiaca massima", + "subTitlePower": "Potenza", + "labelAvgPower": "Potenza media", + "labelMaxPower": "Potenza massima", + "labelNormalizedPower": "Potenza normalizzata", + "subTitleCadence": "Cadenza", + "labelAvgCadence": "Cadenza media", + "labelMaxCadence": "Cadenza massima", + "subTitleElevation": "Elevazione", + "labelElevationGain": "Dislivello positivo", + "labelElevationLoss": "Dislivello negativo", + "subTitleStrokeRate": "Frequenza di bracciata", + "labelAvgStrokeRate": "Frequenza di bracciata media", + "labelMaxStrokeRate": "Frequenza di bracciata massima" +} diff --git a/frontend/app/src/i18n/it/components/activities/activityLapsComponent.json b/frontend/app/src/i18n/it/components/activities/activityLapsComponent.json new file mode 100644 index 000000000..5ad5530d9 --- /dev/null +++ b/frontend/app/src/i18n/it/components/activities/activityLapsComponent.json @@ -0,0 +1,14 @@ +{ + "labelLapNumber": "Giro", + "labelLapIntensity": "Intensità", + "labelLapDistance": "Distanza", + "labelLapTime": "Tempo", + "labelLapPace": "Ritmo", + "labelLapSpeed": "Velocità", + "labelLapElevation": "Elevazione", + "labelLapElev": "Elev", + "labelLapAvgHr": "Frequenza cardiaca media", + "labelLapHR": "FC", + "labelLapStrokeRate": "Frequenza di bracciata", + "labelLapSR": "FB" +} diff --git a/frontend/app/src/i18n/it/components/activities/activityMandAbovePillsComponent.json b/frontend/app/src/i18n/it/components/activities/activityMandAbovePillsComponent.json new file mode 100644 index 000000000..a26a5bc21 --- /dev/null +++ b/frontend/app/src/i18n/it/components/activities/activityMandAbovePillsComponent.json @@ -0,0 +1,17 @@ +{ + "labelPillGraphs": "Grafici", + "labelPillLaps": "Giri", + "labelPillWorkoutSets": "Serie", + "labelGraph": "Grafici dati attività", + "labelGraphHR": "Frequenza cardiaca", + "labelHRZones": "Zone frequenza cardiaca", + "labelGraphPower": "Potenza", + "labelGraphCadence": "Cadenza", + "labelGraphElevation": "Elevazione", + "labelGraphVelocity": "Velocità", + "labelGraphPace": "Ritmo", + "labelGraphHRZone": "Zona", + "labelDownsampling": "Dati ridotti a ~200 punti", + "errorMessageProcessingActivityStreams": "Errore nell'elaborazione dei flussi di attività", + "labelGraphStrokeRate": "Frequenza di bracciata" +} diff --git a/frontend/app/src/i18n/it/components/activities/activityMapComponent.json b/frontend/app/src/i18n/it/components/activities/activityMapComponent.json new file mode 100644 index 000000000..ae16e0801 --- /dev/null +++ b/frontend/app/src/i18n/it/components/activities/activityMapComponent.json @@ -0,0 +1,8 @@ +{ + "modalMediaDeleteTitle": "Elimina media", + "modalMediaDeleteBody1": "Sei sicuro di voler eliminare il media con ID ", + "modalMediaDeleteBody2": " e nome ", + "errorFetchingActivityStream": "Errore nel recupero dei dati del flusso attività", + "mediaDeletedSuccessfully": "Media eliminato con successo", + "errorDeletingMedia": "Errore nell'eliminazione del media" +} diff --git a/frontend/app/src/i18n/it/components/activities/activitySummaryComponent.json b/frontend/app/src/i18n/it/components/activities/activitySummaryComponent.json new file mode 100644 index 000000000..b570116af --- /dev/null +++ b/frontend/app/src/i18n/it/components/activities/activitySummaryComponent.json @@ -0,0 +1,31 @@ +{ + "userNameHidden": "Nascosto", + "visibilityPublic": "Pubblico", + "visibilityFollowers": "Follower", + "visibilityPrivate": "Privato", + "buttonDeleteActivity": "Elimina attività", + "buttonEditActivity": "Modifica attività", + "buttonAddActivityMedia": "Aggiungi media", + "modalDeleteBody1": "Sei sicuro di voler eliminare l'attività ", + "modalDeleteBody2": "Questa azione non può essere annullata.", + "modalAddMediaTitle": "Aggiungi media", + "modalAddMediaBody": "Carica file .png, .jpg o .jpeg", + "processingMediaUpload": "Elaborazione caricamento media...", + "successMediaUpload": "Media caricato con successo", + "errorMediaUpload": "Errore nel caricamento del media", + "labelVirtual": "(Virtuale) ", + "privateNotes": "Note private", + "activityDistance": "Distanza", + "activityTime": "Tempo", + "activityPace": "Ritmo", + "activityAvgHR": "FC media", + "activityMaxHR": "FC massima", + "activityAvgPower": "Potenza media", + "activityAvgSpeed": "Velocità media", + "activityEleGain": "Dislivello positivo", + "activityEleLoss": "Dislivello negativo", + "activityCalories": "Calorie", + "activityNoData": "Nessun dato", + "errorFetchingUserById": "Errore nel recupero dell'utente per ID", + "errorDeletingActivity": "Errore nell'eliminazione dell'attività" +} diff --git a/frontend/app/src/i18n/it/components/activities/activityWorkoutStepsComponent.json b/frontend/app/src/i18n/it/components/activities/activityWorkoutStepsComponent.json new file mode 100644 index 000000000..cf28f28f7 --- /dev/null +++ b/frontend/app/src/i18n/it/components/activities/activityWorkoutStepsComponent.json @@ -0,0 +1,20 @@ +{ + "labelWorkoutStepType": "Tipo di passaggio", + "labelWorkoutStepTime": "Tempo passaggio", + "labelWorkoutStepReps": "Ripetizioni passaggio", + "labelWorkoutStepIntensity": "Intensità", + "labelWorkoutStepNotes": "Note", + "labelWorkoutStepExerciseName": "Nome passaggio", + "labelWorkoutStepExerciseWeight": "Peso", + "labelWorkoutStepSwimStroke": "Stile nuoto passaggio", + "labelWorkoutSetType": "Tipo di serie", + "labelWorkoutSetTime": "Tempo serie", + "labelWorkoutSetReps": "Ripetizioni serie", + "labelWorkoutSetExerciseName": "Nome serie", + "labelWorkoutSetExerciseWeight": "Peso serie", + "labelWorkoutSetTypeMobile": "Tipo", + "labelWorkoutSetTimeMobile": "Tempo", + "labelWorkoutSetRepsMobile": "Ripet.", + "labelWorkoutSetExerciseNameMobile": "Nome", + "labelWorkoutSetExerciseWeightMobile": "Peso" +} diff --git a/frontend/app/src/i18n/it/components/activities/modals/addGearToActivityModalComponent.json b/frontend/app/src/i18n/it/components/activities/modals/addGearToActivityModalComponent.json new file mode 100644 index 000000000..353dd4581 --- /dev/null +++ b/frontend/app/src/i18n/it/components/activities/modals/addGearToActivityModalComponent.json @@ -0,0 +1,6 @@ +{ + "modalLabelAddGear": "Aggiungi attrezzatura all'attività", + "modalLabelSelectGear": "Seleziona attrezzatura", + "modalButtonAddGear": "Aggiungi attrezzatura", + "errorEditingGear": "Errore nella modifica dell'attrezzatura" +} diff --git a/frontend/app/src/i18n/it/components/activities/modals/editActivityModalComponent.json b/frontend/app/src/i18n/it/components/activities/modals/editActivityModalComponent.json new file mode 100644 index 000000000..500f77e23 --- /dev/null +++ b/frontend/app/src/i18n/it/components/activities/modals/editActivityModalComponent.json @@ -0,0 +1,69 @@ +{ + "modalEditActivityTitle": "Modifica attività", + "modalEditActivityDescriptionLabel": "Descrizione", + "modalEditActivityDescriptionPlaceholder": "Descrizione (max 2500 caratteri)", + "modalEditActivityPrivateNotesLabel": "Note private", + "modalEditActivityPrivateNotesPlaceholder": "Note private (max 2500 caratteri)", + "modalEditActivityNameLabel": "Nome", + "modalEditActivityNamePlaceholder": "Nome (max 250 caratteri)", + "modalEditActivityTypeLabel": "Tipo", + "modalEditActivityTypeOption1": "Corsa", + "modalEditActivityTypeOption2": "Trail run", + "modalEditActivityTypeOption3": "Corsa virtuale", + "modalEditActivityTypeOption4": "Ciclismo", + "modalEditActivityTypeOption5": "Gravel", + "modalEditActivityTypeOption6": "Mountain bike", + "modalEditActivityTypeOption7": "Ciclismo virtuale", + "modalEditActivityTypeOption8": "Nuoto", + "modalEditActivityTypeOption9": "Nuoto in acque libere", + "modalEditActivityTypeOption10": "Allenamento", + "modalEditActivityTypeOption11": "Camminata", + "modalEditActivityTypeOption12": "Escursione", + "modalEditActivityTypeOption13": "Canottaggio", + "modalEditActivityTypeOption14": "Yoga", + "modalEditActivityTypeOption15": "Sci alpino", + "modalEditActivityTypeOption16": "Sci nordico", + "modalEditActivityTypeOption17": "Snowboard", + "modalEditActivityTypeOption18": "Transizione", + "modalEditActivityTypeOption19": "Allenamento pesi", + "modalEditActivityTypeOption20": "Crossfit", + "modalEditActivityTypeOption21": "Tennis", + "modalEditActivityTypeOption22": "Ping pong", + "modalEditActivityTypeOption23": "Badminton", + "modalEditActivityTypeOption24": "Squash", + "modalEditActivityTypeOption25": "Racquetball", + "modalEditActivityTypeOption26": "Pickleball", + "modalEditActivityTypeOption27": "Ciclismo pendolare", + "modalEditActivityTypeOption28": "Ciclismo al coperto", + "modalEditActivityTypeOption29": "Ciclismo su terreno misto", + "modalEditActivityTypeOption30": "Windsurf", + "modalEditActivityTypeOption31": "Camminata al coperto", + "modalEditActivityTypeOption32": "Stand up paddle", + "modalEditActivityTypeOption33": "Surf", + "modalEditActivityTypeOption34": "Corsa su pista", + "modalEditActivityTypeOption35": "E-bike", + "modalEditActivityTypeOption36": "E-MTB", + "modalEditActivityTypeOption37": "Pattinaggio su ghiaccio", + "modalEditActivityTypeOption38": "Calcio", + "modalEditActivityTypeOption39": "Padel", + "modalEditActivityTypeOption40": "Corsa su tapis roulant", + "modalEditActivityVisibilityLabel": "Visibilità", + "modalEditActivityVisibilityOption0": "Pubblico", + "modalEditActivityVisibilityOption1": "Follower", + "modalEditActivityVisibilityOption2": "Privato", + "modalEditActivityIsHiddenLabel": "È nascosta", + "modalEditActivityHideStartTimeLabel": "Nascondi ora di inizio", + "modalEditActivityHideLocationLabel": "Nascondi località", + "modalEditActivityHideMapLabel": "Nascondi mappa", + "modalEditActivityHideHrLabel": "Nascondi frequenza cardiaca", + "modalEditActivityHidePowerLabel": "Nascondi potenza", + "modalEditActivityHideCadenceLabel": "Nascondi cadenza", + "modalEditActivityHideElevationLabel": "Nascondi elevazione", + "modalEditActivityHideSpeedLabel": "Nascondi velocità", + "modalEditActivityHidePaceLabel": "Nascondi ritmo", + "modalEditActivityHideLapsLabel": "Nascondi giri", + "modalEditActivityHideWorkoutSetsStepsLabel": "Nascondi serie/passaggi allenamento", + "modalEditActivityHideGearLabel": "Nascondi attrezzatura", + "successActivityEdit": "Attività modificata con successo", + "errorActivityEdit": "Errore nella modifica dell'attività" +} diff --git a/frontend/app/src/i18n/it/components/followers/followersListComponent.json b/frontend/app/src/i18n/it/components/followers/followersListComponent.json new file mode 100644 index 000000000..d57f826a5 --- /dev/null +++ b/frontend/app/src/i18n/it/components/followers/followersListComponent.json @@ -0,0 +1,16 @@ +{ + "requestAccepted": "Accettato", + "requestPending": "Richiesta in sospeso", + "followingModalTitle": "Elimina seguito", + "followingModalBody": "Sei sicuro di voler eliminare l'utente seguito ", + "followerModalTitle": "Elimina follower", + "followerModalBody": "Sei sicuro di voler eliminare l'utente follower ", + "followerAcceptModalTitle": "Accetta richiesta utente", + "followerAcceptModalBody": "Sei sicuro di voler accettare la richiesta di seguito dall'utente ", + "followerDeclineModalTitle": "Rifiuta richiesta utente ", + "followerDeclineModalBody": "Sei sicuro di voler rifiutare la richiesta di seguito dall'utente ", + "errorDeleteFollowing": "Errore nell'eliminazione del seguito", + "errorDeleteFollower": "Errore nell'eliminazione del follower", + "errorUpdateFollower": "Errore nell'aggiornamento del follower", + "errorFetchingFollowersDetails": "Errore nel recupero dei dettagli dei follower" +} diff --git a/frontend/app/src/i18n/it/components/gears/gearComponentAddEditModalComponent.json b/frontend/app/src/i18n/it/components/gears/gearComponentAddEditModalComponent.json new file mode 100644 index 000000000..12cee9580 --- /dev/null +++ b/frontend/app/src/i18n/it/components/gears/gearComponentAddEditModalComponent.json @@ -0,0 +1,19 @@ +{ + "addEditGearComponentModalAddTitle": "Aggiungi componente attrezzatura", + "addEditGearComponentModalEditTitle": "Modifica componente attrezzatura", + "addEditGearComponentModalAddEditTypeLabel": "Tipo", + "addEditGearComponentModalAddEditBrandLabel": "Marca", + "addEditGearComponentModalAddEditModelLabel": "Modello", + "addEditGearComponentModalAddEditPurchaseDateLabel": "Data di acquisto", + "addEditGearComponentModalAddEditExpectedDistanceLabel": "Distanza prevista", + "addEditGearComponentModalAddEditExpectedTimeLabel": "Tempo previsto", + "addEditGearComponentModalAddEditPurchaseValueLabel": "Valore d'acquisto", + "addEditGearComponentModalAddEditRetiredDateLabel": "Data di ritiro", + "addEditGearComponentModalAddEditIsActiveLabel": "È attivo", + "successGearComponentAdded": "Componente attrezzatura aggiunto con successo", + "successGearComponentEdited": "Componente attrezzatura modificato con successo", + "errorGearComponentAdd": "Errore nell'aggiunta del componente attrezzatura", + "gearComponentListGearEditSuccessMessage": "Componente attrezzatura modificato con successo", + "gearComponentListGearEditErrorMessage": "Errore nella modifica del componente attrezzatura", + "retiredDateAfterPurchaseDateError": "La data di ritiro deve essere successiva alla data d'acquisto" +} diff --git a/frontend/app/src/i18n/it/components/gears/gearComponentListComponent.json b/frontend/app/src/i18n/it/components/gears/gearComponentListComponent.json new file mode 100644 index 000000000..9d76a0ffc --- /dev/null +++ b/frontend/app/src/i18n/it/components/gears/gearComponentListComponent.json @@ -0,0 +1,79 @@ +{ + "gearComponentBackTire": "Pneumatico posteriore", + "gearComponentFrontTire": "Pneumatico anteriore", + "gearComponentBackTube": "Camera d'aria posteriore", + "gearComponentFrontTube": "Camera d'aria anteriore", + "gearComponentBackWheelValve": "Valvola posteriore", + "gearComponentFrontWheelValve": "Valvola anteriore", + "gearComponentBackTubelessSealant": "Sigillante tubeless posteriore", + "gearComponentBackTubelessRimTape": "Nastro cerchio tubeless posteriore", + "gearComponentFrontTubelessSealant": "Sigillante tubeless anteriore", + "gearComponentFrontTubelessRimTape": "Nastro cerchio tubeless anteriore", + "gearComponentBackWheel": "Ruota posteriore", + "gearComponentFrontWheel": "Ruota anteriore", + "gearComponentBackBreakRotor": "Disco freno posteriore", + "gearComponentFrontBreakRotor": "Disco freno anteriore", + "gearComponentBackBreakPads": "Pastiglie freno posteriori", + "gearComponentFrontBreakPads": "Pastiglie freno anteriori", + "gearComponentBackBreakOil": "Olio freno posteriore", + "gearComponentFrontBreakOil": "Olio freno anteriore", + "gearComponentCrankLeftPowerMeter": "Misuratore di potenza pedivella sinistra", + "gearComponentCrankRightPowerMeter": "Misuratore di potenza pedivella destra", + "gearComponentCranksetPowerMeter": "Misuratore di potenza guarnitura", + "gearComponentPedalsLeftPowerMeter": "Misuratore di potenza pedale sinistro", + "gearComponentPedalsRightPowerMeter": "Misuratore di potenza pedale destro", + "gearComponentPedalsPowerMeter": "Misuratore di potenza pedali", + "gearComponentPedals": "Pedali", + "gearComponentCrankset": "Guarnitura", + "gearComponentCassette": "Cassetta", + "gearComponentChain": "Catena", + "gearComponentFrontShifter": "Cambio anteriore", + "gearComponentFrontDerailleur": "Deragliatore anteriore", + "gearComponentRearShifter": "Cambio posteriore", + "gearComponentRearDerailleur": "Deragliatore posteriore", + "gearComponentBottomBracket": "Movimento centrale", + "gearComponentBottleCage": "Portaborraccia", + "gearComponentHandlebar": "Manubrio", + "gearComponentHeadset": "Serie sterzo", + "gearComponentComputerMount": "Supporto computer", + "gearComponentHandlebarTape": "Nastro manubrio", + "gearComponentGrips": "Manopole", + "gearComponentStem": "Attacco manubrio", + "gearComponentSeatpost": "Reggisella", + "gearComponentSaddle": "Sella", + "gearComponentFork": "Forcella", + "gearComponentFrame": "Telaio", + "gearComponentCleats": "Tacchetti", + "gearComponentInsoles": "Solette", + "gearComponentLaces": "Lacci", + "gearComponentBaseGrip": "Impugnatura di base", + "gearComponentBumpers": "Paraurti", + "gearComponentGrommets": "Occhielli", + "gearComponentOverGrip": "Overgrip", + "gearComponentStrings": "Corde", + "gearComponentSail": "Vela", + "gearComponentBoard": "Tavola", + "gearComponentMast": "Albero", + "gearComponentBoom": "Boma", + "gearComponentMastExtension": "Prolunga albero", + "gearComponentMastBase": "Base albero", + "gearComponentMastUniversalJoint": "Giunto universale albero", + "gearComponentFin": "Pinna", + "gearComponentFootstraps": "Cinghie piede", + "gearComponentHarnessLines": "Linee trapezio", + "gearComponentRiggingLines": "Linee sartiame", + "gearComponentFootpad": "Cuscinetto piede", + "gearComponentImpactVest": "Giubbotto protettivo", + "gearComponentLifeguardVest": "Giubbotto salvataggio", + "gearComponentHelmet": "Casco", + "gearComponentWing": "Ala", + "gearComponentFrontFoil": "Foil anteriore", + "gearComponentStabilizer": "Stabilizzatore", + "gearComponentFuselage": "Fusoliera", + "gearComponentOf": " di ", + "gearComponentListGearComponentIsInactiveBadge": "Inattivo", + "gearComponentListModalDeleteGearComponentTitle": "Elimina componente attrezzatura", + "gearComponentListModalDeleteGearComponentBody": "Sei sicuro di voler eliminare il componente attrezzatura ", + "gearComponentListGearDeleteSuccessMessage": "Componente attrezzatura eliminato con successo", + "gearComponentListGearDeleteErrorMessage": "Errore nell'eliminazione del componente attrezzatura" +} diff --git a/frontend/app/src/i18n/it/components/gears/gearsAddEditGearModalComponent.json b/frontend/app/src/i18n/it/components/gears/gearsAddEditGearModalComponent.json new file mode 100644 index 000000000..75fd2b8c8 --- /dev/null +++ b/frontend/app/src/i18n/it/components/gears/gearsAddEditGearModalComponent.json @@ -0,0 +1,29 @@ +{ + "addEditGearModalEditTitle": "Modifica attrezzatura", + "addEditGearModalAddTitle": "Aggiungi attrezzatura", + "addEditGearModalAddBrandLabel": "Marca", + "addEditGearModalAddModelLabel": "Modello", + "addEditGearModalAddNicknameLabel": "Soprannome", + "addEditGearModalAddTypeLabel": "Tipo attrezzatura", + "addEditGearModalAddTypeOption1": "Bici", + "addEditGearModalAddTypeOption2": "Scarpe", + "addEditGearModalAddTypeOption3": "Muta", + "addEditGearModalAddTypeOption4": "Racchetta", + "addEditGearModalAddTypeOption5": "Sci", + "addEditGearModalAddTypeOption6": "Snowboard", + "addEditGearModalAddTypeOption7": "Windsurf", + "addEditGearModalAddTypeOption8": "Tavola per sport acquatici", + "addEditGearModalAddDateLabel": "Data di creazione", + "addEditGearModalAddIsActiveLabel": "È attiva", + "addEditGearModalAddIsActiveOption1": "Attiva", + "addEditGearModalAddIsActiveOption0": "Inattiva", + "addEditGearModalAddIsInitialKmsLabel": "Km iniziali", + "addEditGearModalAddIsInitialMilesLabel": "Miglia iniziali", + "addEditGearModalAddEditPurchaseValueLabel": "Valore d'acquisto", + "errorNicknameAlreadyExistsFeedback": "Il soprannome esiste già", + "errorNotPossibleToGetGearByNickname": "Non è stato possibile ottenere l'attrezzatura per soprannome per la validazione", + "successGearAdded": "Attrezzatura aggiunta con successo", + "errorGearAdd": "Errore nell'aggiunta dell'attrezzatura", + "successGearEdited": "Attrezzatura modificata con successo", + "errorGearEdit": "Errore nella modifica dell'attrezzatura" +} diff --git a/frontend/app/src/i18n/it/components/gears/gearsListComponent.json b/frontend/app/src/i18n/it/components/gears/gearsListComponent.json new file mode 100644 index 000000000..c49ce1bc2 --- /dev/null +++ b/frontend/app/src/i18n/it/components/gears/gearsListComponent.json @@ -0,0 +1,16 @@ +{ + "gearListTypeLabel": "Tipo", + "gearListTypeOption1": "Bici", + "gearListTypeOption2": "Scarpe", + "gearListTypeOption3": "Muta", + "gearListTypeOption4": "Racchetta", + "gearListTypeOption5": "Sci", + "gearListTypeOption6": "Snowboard", + "gearListTypeOption7": "Windsurf", + "gearListTypeOption8": "Tavola per sport acquatici", + "gearListGearIsInactiveBadge": "Inattiva", + "gearListModalDeleteGearTitle": "Elimina attrezzatura", + "gearListModalDeleteGearBody": "Sei sicuro di voler eliminare l'attrezzatura ", + "gearListGearDeleteSuccessMessage": "Attrezzatura eliminata con successo", + "gearListGearDeleteErrorMessage": "Errore nell'eliminazione dell'attrezzatura" +} diff --git a/frontend/app/src/i18n/it/components/health/healthDashboardZoneComponent.json b/frontend/app/src/i18n/it/components/health/healthDashboardZoneComponent.json new file mode 100644 index 000000000..6bf485bc8 --- /dev/null +++ b/frontend/app/src/i18n/it/components/health/healthDashboardZoneComponent.json @@ -0,0 +1,13 @@ +{ + "weight": "Peso", + "noWeightData": "Nessun dato sul peso", + "noWeightTarget": "Nessun obiettivo di peso", + "noHeightDefined": "Nessuna altezza definita per l'utente", + "bmi": "IMC", + "bmiUnderweight": "Sottopeso", + "bmiNormalWeight": "Peso normale", + "bmiOverweight": "Sovrappeso", + "bmiObesityClass1": "Obesità (Classe 1)", + "bmiObesityClass2": "Obesità (Classe 2)", + "bmiObesityClass3": "Obesità estrema (Classe 3)" +} diff --git a/frontend/app/src/i18n/it/components/health/healthSideBarComponent.json b/frontend/app/src/i18n/it/components/health/healthSideBarComponent.json new file mode 100644 index 000000000..b3f7a9ee6 --- /dev/null +++ b/frontend/app/src/i18n/it/components/health/healthSideBarComponent.json @@ -0,0 +1,4 @@ +{ + "dashboardSection": "Dashboard", + "weightSection": "Peso" +} diff --git a/frontend/app/src/i18n/it/components/health/healthWeightZone/healthWeightAddEditModalComponent.json b/frontend/app/src/i18n/it/components/health/healthWeightZone/healthWeightAddEditModalComponent.json new file mode 100644 index 000000000..63a317dcc --- /dev/null +++ b/frontend/app/src/i18n/it/components/health/healthWeightZone/healthWeightAddEditModalComponent.json @@ -0,0 +1,8 @@ +{ + "addWeightModalTitle": "Aggiungi peso", + "editWeightModalTitle": "Modifica peso", + "addWeightWeightLabel": "Peso", + "addWeightDateLabel": "Data", + "successAddWeight": "Peso aggiunto", + "errorAddWeight": "Errore nell'aggiunta del peso" +} diff --git a/frontend/app/src/i18n/it/components/health/healthWeightZone/healthWeightListComponent.json b/frontend/app/src/i18n/it/components/health/healthWeightZone/healthWeightListComponent.json new file mode 100644 index 000000000..9e5ec4ce6 --- /dev/null +++ b/frontend/app/src/i18n/it/components/health/healthWeightZone/healthWeightListComponent.json @@ -0,0 +1,9 @@ +{ + "labelGarminConnect": "Garmin Connect", + "modalDeleteWeightTitle": "Elimina peso", + "modalDeleteWeightBody": "Sei sicuro di voler eliminare la voce di peso per ", + "successDeleteWeight": "Peso eliminato", + "errorDeleteWeight": "Non è stato possibile eliminare la voce di peso", + "successEditWeight": "Peso modificato", + "errorEditWeight": "Non è stato possibile modificare la voce di peso" +} diff --git a/frontend/app/src/i18n/it/components/health/healthWeightZoneComponent.json b/frontend/app/src/i18n/it/components/health/healthWeightZoneComponent.json new file mode 100644 index 000000000..710a5b913 --- /dev/null +++ b/frontend/app/src/i18n/it/components/health/healthWeightZoneComponent.json @@ -0,0 +1,6 @@ +{ + "buttonAddWeight": "Aggiungi peso", + "labelNumberOfHealthDataWeight1": "C'è un totale di ", + "labelNumberOfHealthDataWeight2": " misurazioni di peso inserite (", + "labelNumberOfHealthDataWeight3": " caricate):" +} diff --git a/frontend/app/src/i18n/it/components/navbar/navbarBottomMobileComponent.json b/frontend/app/src/i18n/it/components/navbar/navbarBottomMobileComponent.json new file mode 100644 index 000000000..ea59de3b5 --- /dev/null +++ b/frontend/app/src/i18n/it/components/navbar/navbarBottomMobileComponent.json @@ -0,0 +1,7 @@ +{ + "home": "Home", + "gear": "Attrezzatura", + "health": "Salute", + "alerts": "Avvisi", + "menu": "Menu" +} diff --git a/frontend/app/src/i18n/it/components/navbar/navbarComponent.json b/frontend/app/src/i18n/it/components/navbar/navbarComponent.json new file mode 100644 index 000000000..08451fbab --- /dev/null +++ b/frontend/app/src/i18n/it/components/navbar/navbarComponent.json @@ -0,0 +1,13 @@ +{ + "search": "Cerca", + "activities": "Attività", + "activitiesList": "Lista", + "summary": "Riepilogo", + "gear": "Attrezzatura", + "health": "Salute", + "profile": "Profilo", + "settings": "Impostazioni", + "login": "Accedi", + "logout": "Esci", + "errorLogout": "Errore durante la disconnessione" +} diff --git a/frontend/app/src/i18n/it/components/noItemsFoundComponent.json b/frontend/app/src/i18n/it/components/noItemsFoundComponent.json new file mode 100644 index 000000000..58ea957eb --- /dev/null +++ b/frontend/app/src/i18n/it/components/noItemsFoundComponent.json @@ -0,0 +1,4 @@ +{ + "title": "Ops...", + "subtitle": "Nessun record trovato" +} diff --git a/frontend/app/src/i18n/it/components/notifications/adminNewSignUpApprovalRequestNotificationComponent.json b/frontend/app/src/i18n/it/components/notifications/adminNewSignUpApprovalRequestNotificationComponent.json new file mode 100644 index 000000000..78c84b9f8 --- /dev/null +++ b/frontend/app/src/i18n/it/components/notifications/adminNewSignUpApprovalRequestNotificationComponent.json @@ -0,0 +1,4 @@ +{ + "title": "Nuova richiesta di registrazione", + "subTitle": " ha richiesto la registrazione" +} diff --git a/frontend/app/src/i18n/it/components/notifications/navbarNotificationsComponent.json b/frontend/app/src/i18n/it/components/notifications/navbarNotificationsComponent.json new file mode 100644 index 000000000..6f66266ff --- /dev/null +++ b/frontend/app/src/i18n/it/components/notifications/navbarNotificationsComponent.json @@ -0,0 +1,6 @@ +{ + "errorFetchingNotificationsPagination": "Errore nel recupero delle notifiche con paginazione", + "errorFetchingNotificationsNumber": "Errore nel recupero del numero di notifiche", + "errorFetchingNotificationById": "Errore nel recupero della notifica per ID", + "errorFetchingMessageFromWebSocket": "Errore nel recupero del messaggio dal WebSocket" +} diff --git a/frontend/app/src/i18n/it/components/notifications/newAcceptedRequestNotificationComponent.json b/frontend/app/src/i18n/it/components/notifications/newAcceptedRequestNotificationComponent.json new file mode 100644 index 000000000..b8ed3a086 --- /dev/null +++ b/frontend/app/src/i18n/it/components/notifications/newAcceptedRequestNotificationComponent.json @@ -0,0 +1,4 @@ +{ + "newAcceptedRequestTitle": "Nuova richiesta accettata", + "newAcceptedRequestSubTitle": " ha accettato la tua richiesta di seguito" +} diff --git a/frontend/app/src/i18n/it/components/notifications/newActivityDuplicateStartTimeNotificationComponent.json b/frontend/app/src/i18n/it/components/notifications/newActivityDuplicateStartTimeNotificationComponent.json new file mode 100644 index 000000000..a29bc8b27 --- /dev/null +++ b/frontend/app/src/i18n/it/components/notifications/newActivityDuplicateStartTimeNotificationComponent.json @@ -0,0 +1,4 @@ +{ + "newActivityDuplicateStartTimeTitle": "Nuova attività con ora di inizio duplicata", + "newActivityDuplicateStartTimeSubTitle": "È stata aggiunta una nuova attività con un'ora di inizio che si sovrappone a un'attività esistente. Controlla per favore" +} diff --git a/frontend/app/src/i18n/it/components/notifications/newActivityNotificationComponent.json b/frontend/app/src/i18n/it/components/notifications/newActivityNotificationComponent.json new file mode 100644 index 000000000..76b7f07c2 --- /dev/null +++ b/frontend/app/src/i18n/it/components/notifications/newActivityNotificationComponent.json @@ -0,0 +1,4 @@ +{ + "newActivityTitle": "Nuova attività", + "newActivitySubTitle": "Ottimo lavoro! È stata aggiunta una nuova attività!" +} diff --git a/frontend/app/src/i18n/it/components/notifications/newFollowerRequestNotificationComponent.json b/frontend/app/src/i18n/it/components/notifications/newFollowerRequestNotificationComponent.json new file mode 100644 index 000000000..4b6a5b021 --- /dev/null +++ b/frontend/app/src/i18n/it/components/notifications/newFollowerRequestNotificationComponent.json @@ -0,0 +1,4 @@ +{ + "newFollowerRequestTitle": "Nuova richiesta di seguito", + "newFollowerRequestSubTitle": "Hai una nuova richiesta di seguito da " +} diff --git a/frontend/app/src/i18n/it/components/settings/settingsGeneralZone/settingsLanguageSwitcherComponent.json b/frontend/app/src/i18n/it/components/settings/settingsGeneralZone/settingsLanguageSwitcherComponent.json new file mode 100644 index 000000000..e7f1ddc33 --- /dev/null +++ b/frontend/app/src/i18n/it/components/settings/settingsGeneralZone/settingsLanguageSwitcherComponent.json @@ -0,0 +1,3 @@ +{ + "formLabel": "Lingua" +} diff --git a/frontend/app/src/i18n/it/components/settings/settingsGeneralZone/settingsThemeSwitcherComponent.json b/frontend/app/src/i18n/it/components/settings/settingsGeneralZone/settingsThemeSwitcherComponent.json new file mode 100644 index 000000000..76325d76f --- /dev/null +++ b/frontend/app/src/i18n/it/components/settings/settingsGeneralZone/settingsThemeSwitcherComponent.json @@ -0,0 +1,6 @@ +{ + "formLabel": "Tema", + "themeLight": "Chiaro", + "themeDark": "Scuro", + "themeAuto": "Automatico" +} diff --git a/frontend/app/src/i18n/it/components/settings/settingsImportZoneComponent.json b/frontend/app/src/i18n/it/components/settings/settingsImportZoneComponent.json new file mode 100644 index 000000000..4c484ce67 --- /dev/null +++ b/frontend/app/src/i18n/it/components/settings/settingsImportZoneComponent.json @@ -0,0 +1,18 @@ +{ + "bulkImportIntegrationTitle": "Importazione massiva", + "bulkImportIntegrationBody": "Importa attività in massa da file (nella cartella data/activity_files/bulk_import)", + "buttonBulkImport": "Importa attività", + "loadingMessageBulkImport": "Importazione attività da file...", + "errorMessageUnableToImportActivities": "Si è verificato un errore durante l'importazione delle attività", + "importTitle": "Importa", + "stravaGearImportTitle": "Importazione attrezzatura Strava", + "stravaGearImportBody": "Importa attrezzatura da un'esportazione massiva Strava (nella cartella data/activity_files/bulk_import)", + "stravaGearImportbuttonBikes": "Importa bici Strava", + "loadingMessageStravaBikesImport": "Importazione bici Strava da file...", + "successMessageStravaBikesImport": "Bici Strava importate con successo", + "errorMessageUnableToImportBikes": "Si è verificato un errore durante l'importazione delle bici Strava", + "stravaImportbuttonShoes": "Importa scarpe Strava", + "loadingMessageStravaShoesImport": "Importazione scarpe Strava da file...", + "successMessageStravaShoesImport": "Scarpe Strava importate con successo", + "errorMessageUnableToImportShoes": "Si è verificato un errore durante l'importazione delle scarpe Strava" +} diff --git a/frontend/app/src/i18n/it/components/settings/settingsIntegrationsZone/garminConnectLoginModalComponent.json b/frontend/app/src/i18n/it/components/settings/settingsIntegrationsZone/garminConnectLoginModalComponent.json new file mode 100644 index 000000000..777d14a6e --- /dev/null +++ b/frontend/app/src/i18n/it/components/settings/settingsIntegrationsZone/garminConnectLoginModalComponent.json @@ -0,0 +1,14 @@ +{ + "garminConnectAuthModalTitle": "Collega account Garmin Connect", + "garminConnectAuthModalUsernameLabel": "Email Garmin Connect", + "garminConnectAuthModalUsernamePlaceholder": "Email Garmin Connect", + "garminConnectAuthModalPasswordLabel": "Password Garmin Connect", + "garminConnectAuthModalPasswordPlaceholder": "Password Garmin Connect", + "garminConnectAuthModalMfaCodeLabel": "Codice MFA", + "garminConnectAuthModalMfaCodePlaceholder": "Codice MFA", + "buttonSubmitMfaCode": "Invia codice MFA", + "garminConnectAuthModalLoginButton": "Accedi", + "processingMessageLinkGarminConnect": "Collegamento account Garmin Connect...", + "successMessageLinkGarminConnect": "Account Garmin Connect collegato", + "errorMessageUnableToLinkGarminConnect": "Impossibile collegare l'account Garmin Connect" +} diff --git a/frontend/app/src/i18n/it/components/settings/settingsIntegrationsZoneComponent.json b/frontend/app/src/i18n/it/components/settings/settingsIntegrationsZoneComponent.json new file mode 100644 index 000000000..ad63484db --- /dev/null +++ b/frontend/app/src/i18n/it/components/settings/settingsIntegrationsZoneComponent.json @@ -0,0 +1,47 @@ +{ + "stravaIntegrationTitle": "Strava", + "stravaIntegrationBody": "Strava è un servizio internet americano per il tracciamento dell'esercizio fisico che incorpora funzionalità di social network.", + "buttonConnect": "Connetti", + "buttonDropdownOptions": "Opzioni", + "modalRetrieveActivitiesByDaysTitle": "Recupera attività per giorni", + "modalRetrieveActivitiesByDateRangeTitle": "Recupera attività per intervallo di date", + "modalRetrieveActivitiesByDaysLabel": "Giorni", + "modalRetrieveActivitiesByDaysPlaceholder": "Giorni", + "modalRetrieveButton": "Recupera", + "buttonRetrieveGear": "Recupera attrezzatura", + "buttonRelink": "Ricollega", + "buttonUnlink": "Scollega", + "modalRetrieveClientIdTitle": "Connetti Strava", + "modalRetrieveClientIdLabel": "ID Client", + "modalRetrieveClientSecretLabel": "Secret client", + "errorMessageUnableToLinkStrava": "Impossibile collegare l'account Strava", + "errorMessageUnableToUnsetStravaClientSettings": "Impossibile rimuovere le impostazioni del client e dello stato Strava dopo l'errore di collegamento", + "successMessageStravaAccountLinked": "Account Strava collegato", + "errorMessageUnableToUnSetStravaState": "Impossibile rimuovere lo stato Strava", + "errorMessageUnableToGetStravaActivities": "Impossibile ottenere le attività Strava", + "errorMessageUnableToGetStravaGear": "Impossibile ottenere l'attrezzatura Strava", + "loadingMessageRetrievingStravaActivities": "Recupero attività Strava", + "loadingMessageRetrievingStravaGear": "Recupero attrezzatura Strava", + "processingMessageUnlinkStrava": "Scollegamento account Strava...", + "successMessageStravaUnlinked": "Account Strava scollegato", + "errorMessageUnableToUnlinkStrava": "Impossibile scollegare l'account Strava", + "modalUnlinkStravaTitle": "Scollega Strava", + "modalUnlinkStravaBody": "Sei sicuro di voler scollegare il tuo account Strava? Lo scollegamento rimuoverà tutte le attività e l'attrezzatura Strava da Endurain.", + "garminConnectIntegrationTitle": "Garmin Connect", + "garminConnectIntegrationBody": "Garmin Connect è una piattaforma per attività di salute e fitness per utenti di dispositivi Garmin", + "loadingMessageRetrievingGarminConnectActivities": "Recupero attività Garmin Connect", + "errorMessageUnableToGetGarminConnectActivitiesDays": "Impossibile ottenere le attività Garmin Connect per giorni", + "errorMessageUnableToGetGarminConnectActivitiesDataRange": "Impossibile ottenere le attività Garmin Connect usando l'intervallo di date", + "modalUnlinkGarminConnectTitle": "Scollega Garmin Connect", + "modalUnlinkGarminConnectBody": "Sei sicuro di voler scollegare il tuo account Garmin Connect?", + "processingMessageUnlinkGarminConnect": "Scollegamento account Garmin Connect...", + "successMessageGarminConnectUnlinked": "Account Garmin Connect scollegato", + "errorMessageUnableToUnlinkGarminConnect": "Impossibile scollegare l'account Garmin Connect", + "errorMessageUnableToGetGarminConnectGear": "Impossibile ottenere l'attrezzatura Garmin Connect", + "loadingMessageRetrievingGarminConnectGear": "Recupero attrezzatura Garmin Connect", + "modalRetrieveHealthDataByDaysTitle": "Recupera dati sulla salute per giorni", + "modalRetrieveHealthDataByDateRangeTitle": "Recupera dati sulla salute per intervallo di date", + "errorMessageUnableToGetGarminConnectHealthDataDays": "Impossibile ottenere i dati sulla salute Garmin Connect per giorni", + "errorMessageUnableToGetGarminConnectHealthDataDateRange": "Impossibile ottenere i dati sulla salute Garmin Connect usando l'intervallo di date", + "loadingMessageRetrievingGarminConnectHealthData": "Recupero dati sulla salute Garmin Connect" +} diff --git a/frontend/app/src/i18n/it/components/settings/settingsSecurityZoneComponent.json b/frontend/app/src/i18n/it/components/settings/settingsSecurityZoneComponent.json new file mode 100644 index 000000000..be85b64a1 --- /dev/null +++ b/frontend/app/src/i18n/it/components/settings/settingsSecurityZoneComponent.json @@ -0,0 +1,31 @@ +{ + "subtitleChangePassword": "Cambia password", + "changeUserPasswordBodyLabel": "Cambia password per l'utente ", + "changeUserPasswordPasswordLabel": "Nuova password", + "changeUserPasswordPasswordConfirmationLabel": "Conferma nuova password", + "changeUserPasswordFeedbackLabel": "La password non soddisfa i requisiti", + "changeUserPasswordPasswordsDoNotMatchFeedbackLabel": "Le password non corrispondono", + "subtitleMFA": "Autenticazione a più fattori (MFA)", + "mfaDisabledDescription": "MFA è attualmente disabilitato. Abilitalo per aggiungere un ulteriore livello di sicurezza al tuo account.", + "mfaEnabledDescription": "MFA è attualmente abilitato. Il tuo account è protetto con l'autenticazione a due fattori.", + "enableMFAButton": "Abilita MFA", + "disableMFAButton": "Disabilita MFA", + "mfaSetupModalTitle": "Configura autenticazione a più fattori", + "mfaSetupInstructions": "Scansiona il codice QR qui sotto con la tua app di autenticazione (Google Authenticator, Authy, ecc.) o inserisci manualmente il segreto:", + "mfaSecretLabel": "Chiave segreta", + "mfaVerificationCodeLabel": "Codice di verifica", + "mfaVerificationCodePlaceholder": "Inserisci il codice a 6 cifre", + "mfaDisableModalTitle": "Disabilita autenticazione a più fattori", + "mfaDisableConfirmation": "Sei sicuro di voler disabilitare MFA? Questo ridurrà la sicurezza del tuo account.", + "mfaEnabledSuccess": "MFA abilitato con successo", + "mfaDisabledSuccess": "MFA disabilitato con successo", + "errorLoadMFAStatus": "Errore nel caricamento dello stato MFA", + "errorSetupMFA": "Errore nella configurazione di MFA", + "errorEnableMFA": "Errore nell'abilitazione di MFA", + "errorDisableMFA": "Errore nella disabilitazione di MFA", + "subtitleMySessions": "Le mie sessioni", + "userChangePasswordSuccessMessage": "Password cambiata con successo", + "userChangePasswordErrorMessage": "Errore nel cambio password", + "successDeleteSession": "Sessione eliminata con successo", + "errorDeleteSession": "Errore nell'eliminazione della sessione" +} diff --git a/frontend/app/src/i18n/it/components/settings/settingsServerSettingsZoneComponent.json b/frontend/app/src/i18n/it/components/settings/settingsServerSettingsZoneComponent.json new file mode 100644 index 000000000..529a81553 --- /dev/null +++ b/frontend/app/src/i18n/it/components/settings/settingsServerSettingsZoneComponent.json @@ -0,0 +1,29 @@ +{ + "defaultsTitle": "Predefiniti", + "unitsLabel": "Unità predefinite", + "unitsMetric": "Metriche", + "unitsImperial": "Imperiali", + "currencyLabel": "Valuta predefinita", + "numRecordsLabel": "Numero di record per pagina", + "signupTitle": "Registrazione", + "adminApprovalLabel": "Approvazione amministratore", + "emailConfirmationLabel": "Conferma email", + "publicShareableLinksLabel": "Link condivisibili pubblici", + "enabledLabel": "Abilitato", + "serverSettingsPublicShareableLinksEnabledWarningAlert": "L'abilitazione renderà tutte le attività pubblicate visibili senza autenticazione.", + "publicShareableLinksShowUserInfoLabel": "Mostra info utente", + "serverSettingsPublicShareableLinksShowUserWarningAlert": "L'abilitazione visualizzerà le informazioni dell'utente su tutti i link pubblici", + "photosLabel": "Foto", + "loginPhotoLabel": "Foto di login", + "buttonAddPhoto": "Aggiungi foto", + "logonPhotoAddLabel": "Foto della pagina di login (.png) con dimensione di 1000x1000 pixel.", + "processingPhotoUpload": "Elaborazione caricamento foto", + "successPhotoUpload": "Foto caricata con successo", + "buttonDeleteLoginPhoto": "Elimina foto di login", + "modalDeleteLoginPhotoBody": "Sei sicuro di voler eliminare la foto di login?", + "processingPhotoDelete": "Elaborazione eliminazione foto", + "successPhotoDelete": "Foto eliminata con successo", + "successUpdateServerSettings": "Impostazioni server aggiornate con successo", + "errorUpdateServerSettings": "Errore nell'aggiornamento delle impostazioni server", + "errorFetchingServerSettings": "Errore nel recupero delle impostazioni server" +} diff --git a/frontend/app/src/i18n/it/components/settings/settingsSideBarComponent.json b/frontend/app/src/i18n/it/components/settings/settingsSideBarComponent.json new file mode 100644 index 000000000..3cdcf5bfe --- /dev/null +++ b/frontend/app/src/i18n/it/components/settings/settingsSideBarComponent.json @@ -0,0 +1,10 @@ +{ + "usersSection": "Utenti", + "serverSettingsSection": "Impostazioni server", + "generalSection": "Generale", + "myProfileSection": "Il mio profilo", + "myGoals": "I miei obiettivi", + "securitySection": "Sicurezza", + "integrationsSection": "Integrazioni", + "importSection": "Importa" +} diff --git a/frontend/app/src/i18n/it/components/settings/settingsUserGoals.json b/frontend/app/src/i18n/it/components/settings/settingsUserGoals.json new file mode 100644 index 000000000..aa8c37e07 --- /dev/null +++ b/frontend/app/src/i18n/it/components/settings/settingsUserGoals.json @@ -0,0 +1,7 @@ +{ + "addNewGoal": "Aggiungi nuovo obiettivo", + "labelNumberOfGoals1": "Hai ", + "labelNumberOfGoals2": " obiettivo/i impostati:", + "successGoalDeleted": "Obiettivo eliminato con successo", + "errorFetchingGoals": "Errore nel recupero degli obiettivi" +} diff --git a/frontend/app/src/i18n/it/components/settings/settingsUserGoalsZone/goalsAddEditGoalModalComponent.json b/frontend/app/src/i18n/it/components/settings/settingsUserGoalsZone/goalsAddEditGoalModalComponent.json new file mode 100644 index 000000000..ffe737c0b --- /dev/null +++ b/frontend/app/src/i18n/it/components/settings/settingsUserGoalsZone/goalsAddEditGoalModalComponent.json @@ -0,0 +1,30 @@ +{ + "addEditGoalModalAddTitle": "Aggiungi obiettivo", + "addEditGoalModalEditTitle": "Modifica obiettivo", + "addEditGoalModalGoalIntervalLabel": "Intervallo", + "intervalOption1": "Giornaliero", + "intervalOption2": "Settimanale", + "intervalOption3": "Mensile", + "intervalOption4": "Annuale", + "addEditGoalModalGoalActivityTypeLabel": "Tipo di attività", + "activityTypeRun": "Corsa", + "activityTypeBike": "Ciclismo", + "activityTypeSwim": "Nuoto", + "activityTypeWalk": "Camminata", + "activityTypeStrength": "Forza", + "addEditGoalModalGoalTypeLabel": "Tipo", + "addEditGoalModalCaloriesLabel": "Calorie", + "addEditGoalModalCaloriesPlaceholder": "Calorie target", + "addEditGoalModalActivitiesNumberLabel": "Numero di attività", + "addEditGoalModalActivitiesNumberPlaceholder": "Numero di attività target", + "addEditGoalModalDistanceLabel": "Distanza", + "addEditGoalModalDistancePlaceholder": "Distanza target", + "addEditGoalModalElevationLabel": "Elevazione", + "addEditGoalModalElevationPlaceholder": "Elevazione target", + "addEditGoalModalDurationLabel": "Durata", + "addEditGoalModalDurationPlaceholder": "Durata target (es: 1.5 uguale 1h30m)", + "addEditGoalModalSuccessAddGoal": "Obiettivo aggiunto con successo", + "addEditGoalModalErrorAddGoal": "Errore nell'aggiunta dell'obiettivo", + "addEditGoalModalSuccessEditGoal": "Obiettivo modificato con successo", + "addEditGoalModalErrorEditGoal": "Errore nella modifica dell'obiettivo" +} diff --git a/frontend/app/src/i18n/it/components/settings/settingsUserGoalsZone/goalsListComponent.json b/frontend/app/src/i18n/it/components/settings/settingsUserGoalsZone/goalsListComponent.json new file mode 100644 index 000000000..76965fcb7 --- /dev/null +++ b/frontend/app/src/i18n/it/components/settings/settingsUserGoalsZone/goalsListComponent.json @@ -0,0 +1,5 @@ +{ + "modalDeleteGoalTitle": "Elimina obiettivo", + "modalDeleteGoalBody": "Sei sicuro di voler eliminare l'obiettivo con ID ", + "goalDeleteErrorMessage": "Errore nell'eliminazione dell'obiettivo" +} diff --git a/frontend/app/src/i18n/it/components/settings/settingsUserProfileZoneComponent.json b/frontend/app/src/i18n/it/components/settings/settingsUserProfileZoneComponent.json new file mode 100644 index 000000000..c9ab62497 --- /dev/null +++ b/frontend/app/src/i18n/it/components/settings/settingsUserProfileZoneComponent.json @@ -0,0 +1,89 @@ +{ + "titleProfileInfo": "Il mio profilo", + "buttonDeleteProfilePhoto": "Elimina", + "modalDeleteProfilePhotoBody": "Sei sicuro di voler eliminare la foto del profilo?", + "buttonEditProfile": "Profilo", + "usernameLabel": "Nome utente", + "emailLabel": "Email", + "cityLabel": "Città", + "birthdayLabel": "Data di nascita", + "genderLabel": "Genere", + "genderOption1": "Maschio", + "genderOption2": "Femmina", + "genderOption3": "Non specificato", + "unitsLabel": "Unità", + "unitsOption1": "Metriche", + "unitsOption2": "Imperiali", + "currencyLabel": "Valuta", + "heightLabel": "Altezza", + "preferredLanguageLabel": "Lingua preferita", + "firstDayOfWeekLabel": "Primo giorno della settimana", + "accessTypeLabel": "Tipo di accesso", + "accessTypeOption1": "Utente normale", + "accessTypeOption2": "Amministratore", + "userPhotoDeleteSuccess": "Foto profilo eliminata con successo", + "userPhotoDeleteError": "Errore nell'eliminazione della foto profilo", + "titleDefaultGear": "Attrezzatura predefinita", + "subTitleShoeActivities": "Attività con scarpe", + "subTitleRun": "Corsa", + "subTitleTrailRun": "Trail run", + "subTitleVirtualRun": "Corsa virtuale", + "subTitleWalk": "Camminata", + "subTitleHike": "Escursione", + "subTitleBikeActivities": "Attività ciclismo", + "subTitleBike": "Bici", + "subTitleMTBBike": "MTB", + "subTitleGravelBike": "Gravel", + "subTitleVirtualBike": "Ciclismo virtuale", + "subTitleWaterActivities": "Attività acquatiche", + "subTitleSwim": "Nuoto in acque libere", + "subTitleWindsurf": "Windsurf", + "subTitleRacquetActivities": "Attività con racchetta", + "subTitleTennis": "Tennis", + "subTitleSnowActivities": "Attività sulla neve", + "subTitleAlpineSki": "Sci alpino", + "subTitleNordicSki": "Sci nordico", + "subTitleSnowboard": "Snowboard", + "selectOptionNotDefined": "Non definito", + "titlePrivacy": "Privacy", + "defaultActivityVisibility": "Visibilità attività predefinita", + "privacyOption1": "Pubblico", + "privacyOption2": "Follower", + "privacyOption3": "Privato", + "defaultActivityStartTime": "Nascondi ora di inizio attività", + "defaultActivityLocation": "Nascondi località attività", + "defaultActivityMap": "Nascondi mappa attività", + "defaultActivityHeartRate": "Nascondi frequenza cardiaca attività", + "defaultActivityPower": "Nascondi potenza attività", + "defaultActivityCadence": "Nascondi cadenza attività", + "defaultActivityElevation": "Nascondi elevazione attività", + "defaultActivitySpeed": "Nascondi velocità attività", + "defaultActivityPace": "Nascondi ritmo attività", + "defaultActivityLaps": "Nascondi giri attività", + "defaultActivitySetsSteps": "Nascondi serie/passaggi attività", + "defaultActivityGear": "Nascondi attrezzatura attività", + "buttonChangeDefaultActivityVisibility": "Cambia visibilità predefinita", + "buttonChangeUserActivitiesVisibility": "Cambia visibilità attività", + "changeUserActivitiesVisibilityModalVisibilityLabel": "Visibilità", + "changeUserActivitiesVisibilityModalButton": "Cambia", + "successUpdateUserActivitiesVisibility": "Visibilità attività aggiornata con successo", + "errorUpdateUserActivitiesVisibility": "Errore nell'aggiornamento della visibilità attività", + "errorUnableToGetGear": "Impossibile ottenere l'attrezzatura", + "errorUnableToGetDefaultGear": "Impossibile ottenere l'attrezzatura predefinita", + "successUpdateDefaultGear": "Attrezzatura predefinita aggiornata con successo", + "errorUpdateDefaultGear": "Errore nell'aggiornamento dell'attrezzatura predefinita", + "successUpdateUserPrivacySettings": "Impostazioni privacy utente aggiornate con successo", + "errorUpdateUserPrivacySettings": "Errore nell'aggiornamento delle impostazioni privacy utente", + "titleExportData": "Esporta e importa dati", + "labelPasswordDisclaimer": "La password utente non è inclusa nel processo di import/export. Dopo l'importazione, aggiorna la tua password nella sezione sicurezza.", + "buttonExportData": "Esporta dati", + "buttonImportData": "Importa dati", + "modalImportTitle": "Importa file di backup", + "modalImportBody": "Seleziona il file .zip che hai precedentemente esportato per ripristinare i tuoi dati.", + "exportLoading": "Esportazione dati in corso, potrebbe richiedere alcuni minuti...", + "exportSuccess": "Esportazione completata con successo", + "exportError": "Errore nell'esportazione dei dati", + "importLoading": "Importazione dati in corso, potrebbe richiedere alcuni minuti...", + "importSuccess": "Importazione completata", + "importError": "Errore nell'importazione dei dati" +} diff --git a/frontend/app/src/i18n/it/components/settings/settingsUserSessionsZone/userSessionsListComponent.json b/frontend/app/src/i18n/it/components/settings/settingsUserSessionsZone/userSessionsListComponent.json new file mode 100644 index 000000000..828baeb4a --- /dev/null +++ b/frontend/app/src/i18n/it/components/settings/settingsUserSessionsZone/userSessionsListComponent.json @@ -0,0 +1,5 @@ +{ + "badgeCurrentSession": "Sessione corrente", + "modalDeleteSessionTitle": "Elimina sessione", + "modalDeleteSessionBody": "Sei sicuro di voler eliminare la sessione " +} diff --git a/frontend/app/src/i18n/it/components/settings/settingsUsersZone/usersAddEditUserModalComponent.json b/frontend/app/src/i18n/it/components/settings/settingsUsersZone/usersAddEditUserModalComponent.json new file mode 100644 index 000000000..70e6a9d49 --- /dev/null +++ b/frontend/app/src/i18n/it/components/settings/settingsUsersZone/usersAddEditUserModalComponent.json @@ -0,0 +1,52 @@ +{ + "addEditUserModalAddTitle": "Aggiungi utente", + "addEditUserModalEditTitle": "Modifica utente", + "addEditUserModalEditProfileTitle": "Modifica profilo", + "addEditUserModalDeleteUserPhotoButton": "Elimina foto", + "addEditUserModalUserPhotoLabel": "Foto utente", + "addEditUserModalUsernameLabel": "Nome utente", + "addEditUserModalUsernamePlaceholder": "Nome utente (max 45 caratteri)", + "addEditUserModalErrorUsernameExists": "Il nome utente esiste già", + "addEditUserModalNameLabel": "Nome", + "addEditUserModalNamePlaceholder": "Nome (max 45 caratteri)", + "addEditUserModalEmailLabel": "Email", + "addEditUserModalEmailPlaceholder": "Email (max 45 caratteri)", + "addEditUserModalErrorEmailInvalid": "L'email non è valida", + "addEditUserModalErrorEmailExists": "L'email esiste già", + "addEditUserModalPasswordLabel": "Password", + "addEditUserModalPasswordPlaceholder": "Password", + "addEditUserModalErrorPasswordInvalid": "La password non soddisfa i requisiti", + "addEditUserModalCityLabel": "Città", + "addEditUserModalCityPlaceholder": "Città (max 45 caratteri)", + "addEditUserModalBirthdayLabel": "Data di nascita", + "addEditUserModalGenderLabel": "Genere", + "addEditUserModalUnitsLabel": "Unità", + "addEditUserModalUnitsOption1": "Metriche", + "addEditUserModalUnitsOption2": "Imperiali", + "addEditUserModalCurrencyLabel": "Valuta", + "addEditUserModalHeightLabel": "Altezza", + "addEditUserModalHeightPlaceholder": "Altezza", + "addEditUserModalFeetValidationLabel": "Altezza non valida. Inserisci un'altezza valida in piedi.", + "addEditUserModalInchesValidationLabel": "Altezza non valida. Inserisci un'altezza valida in pollici.", + "addEditUserModalUserPreferredLanguageLabel": "Lingua preferita", + "addEditUserModalUserFirstDayOfWeekLabel": "Primo giorno della settimana", + "addEditUserModalUserTypeLabel": "Tipo di accesso", + "addEditUserModalUserTypeOption1": "Utente normale", + "addEditUserModalUserTypeOption2": "Amministratore", + "addEditUserModalIsActiveLabel": "È attivo", + "addEditUserModalIsActiveOption1": "Sì", + "addEditUserModalIsActiveOption2": "No", + "addEditUserModalDefaultActivityVisibilityLabel": "Visibilità attività predefinita", + "addEditUserModalDefaultActivityVisibilityOption1": "Pubblico", + "addEditUserModalDefaultActivityVisibilityOption2": "Follower", + "addEditUserModalDefaultActivityVisibilityOption3": "Privato", + "addEditUserModalErrorFetchingUserByUsername": "Errore nel recupero dell'utente per nome utente", + "addEditUserModalErrorFetchingUserByEmail": "Errore nel recupero dell'utente per email", + "addEditUserModalSuccessDeleteUserPhoto": "Foto utente eliminata con successo", + "addEditUserModalErrorDeleteUserPhoto": "Errore nell'eliminazione della foto utente", + "addEditUserModalErrorUploadingUserPhoto": "Errore nel caricamento della foto utente", + "addEditUserModalSuccessAddUser": "Utente aggiunto con successo", + "addEditUserModalErrorAddUser": "Errore nell'aggiunta dell'utente", + "addEditUserModalSuccessEditUser": "Utente modificato con successo", + "addEditUserModalErrorEditUser": "Errore nella modifica dell'utente" +} diff --git a/frontend/app/src/i18n/it/components/settings/settingsUsersZone/usersChangeUserPasswordModalComponent.json b/frontend/app/src/i18n/it/components/settings/settingsUsersZone/usersChangeUserPasswordModalComponent.json new file mode 100644 index 000000000..c4dc76391 --- /dev/null +++ b/frontend/app/src/i18n/it/components/settings/settingsUsersZone/usersChangeUserPasswordModalComponent.json @@ -0,0 +1,10 @@ +{ + "modalChangeUserPasswordTitle": "Cambia password utente", + "modalChangeUserPasswordBodyLabel": "Cambia password per l'utente ", + "modalChangeUserPasswordPasswordLabel": "Nuova password", + "modalChangeUserPasswordPasswordConfirmationLabel": "Conferma nuova password", + "modalChangeUserPasswordFeedbackLabel": "La password non soddisfa i requisiti", + "modalChangeUserPasswordPasswordsDoNotMatchFeedbackLabel": "Le password non corrispondono", + "userChangePasswordSuccessMessage": "Password cambiata con successo", + "userChangePasswordErrorMessage": "Errore nel cambio password" +} diff --git a/frontend/app/src/i18n/it/components/settings/settingsUsersZone/usersListComponent.json b/frontend/app/src/i18n/it/components/settings/settingsUsersZone/usersListComponent.json new file mode 100644 index 000000000..57273aa4f --- /dev/null +++ b/frontend/app/src/i18n/it/components/settings/settingsUsersZone/usersListComponent.json @@ -0,0 +1,22 @@ +{ + "userListAccessTypeOption1": "Utente normale", + "userListAccessTypeOption2": "Amministratore", + "userListUserIsMeBadge": "Io", + "userListUserIsAdminBadge": "Admin", + "userListUserIsInactiveBadge": "Inattivo", + "userListUserHasUnverifiedEmailBadge": "Email non verificata", + "modalApproveSignUpTitle": "Approva registrazione utente", + "modalApproveSignUpBody": "Sei sicuro di voler approvare l'utente ", + "processingApproval": "Elaborazione approvazione...", + "userApproveSuccessMessage": "Utente approvato con successo.", + "userApproveErrorMessage": "Errore nell'approvazione dell'utente", + "modalRejectSignUpTitle": "Rifiuta registrazione utente", + "modalRejectSignUpBody1": "Sei sicuro di voler rifiutare l'utente ", + "modalRejectSignUpBody2": "L'utente verrà eliminato, questa azione non può essere annullata.", + "userEditErrorMessage": "Errore nella modifica dell'utente", + "modalDeleteUserTitle": "Elimina utente", + "modalDeleteUserBody": "Sei sicuro di voler eliminare l'utente ", + "userListUserSessionsTitle": "Sessioni utente", + "userSessionDeleteSuccessMessage": "Sessione eliminata con successo", + "userSessionDeleteErrorMessage": "Errore nell'eliminazione della sessione" +} diff --git a/frontend/app/src/i18n/it/components/settings/settingsUsersZone/usersPasswordRequirementsComponent.json b/frontend/app/src/i18n/it/components/settings/settingsUsersZone/usersPasswordRequirementsComponent.json new file mode 100644 index 000000000..29a6737b6 --- /dev/null +++ b/frontend/app/src/i18n/it/components/settings/settingsUsersZone/usersPasswordRequirementsComponent.json @@ -0,0 +1,7 @@ +{ + "passwordRequirementsTitle": "I requisiti della password includono:", + "passwordCharacters": "- 8 caratteri;", + "passwordCapitalLetters": "- 1 lettera maiuscola;", + "passwordNumbers": "- 1 numero;", + "passwordSpecialCharacters": "- 1 carattere speciale;" +} diff --git a/frontend/app/src/i18n/it/components/settings/settingsUsersZoneComponent.json b/frontend/app/src/i18n/it/components/settings/settingsUsersZoneComponent.json new file mode 100644 index 000000000..6df44419c --- /dev/null +++ b/frontend/app/src/i18n/it/components/settings/settingsUsersZoneComponent.json @@ -0,0 +1,10 @@ +{ + "buttonAddUser": "Aggiungi utente", + "labelSearchUsersByUsername": "Cerca utenti per nome utente", + "labelNumberOfUsers1": "C'è un totale di ", + "labelNumberOfUsers2": " utente/i (", + "labelNumberOfUsers3": " caricati):", + "successUserAdded": "Utente aggiunto con successo", + "successUserDeleted": "Utente eliminato con successo", + "errorFetchingUsers": "Errore nel recupero degli utenti" +} diff --git a/frontend/app/src/i18n/it/components/users/userDistanceStatsComponent.json b/frontend/app/src/i18n/it/components/users/userDistanceStatsComponent.json new file mode 100644 index 000000000..111e2d733 --- /dev/null +++ b/frontend/app/src/i18n/it/components/users/userDistanceStatsComponent.json @@ -0,0 +1,4 @@ +{ + "thisWeekDistancesTitle": "Top 3 della settimana", + "thisMonthDistancesTitle": "Top 3 del mese" +} diff --git a/frontend/app/src/i18n/it/components/users/userGoalsStatsComponent.json b/frontend/app/src/i18n/it/components/users/userGoalsStatsComponent.json new file mode 100644 index 000000000..abaf0aca6 --- /dev/null +++ b/frontend/app/src/i18n/it/components/users/userGoalsStatsComponent.json @@ -0,0 +1,13 @@ +{ + "title": "Obiettivi", + "activityTypeRun": "Corsa", + "activityTypeBike": "Ciclismo", + "activityTypeSwim": "Nuoto", + "activityTypeWalk": "Camminata", + "activityTypeStrength": "Forza", + "intervalOption1": "Giornaliero", + "intervalOption2": "Settimanale", + "intervalOption3": "Mensile", + "intervalOption4": "Annuale", + "activities": "attività" +} diff --git a/frontend/app/src/i18n/it/emailVerificationView.json b/frontend/app/src/i18n/it/emailVerificationView.json new file mode 100644 index 000000000..cc526d4ea --- /dev/null +++ b/frontend/app/src/i18n/it/emailVerificationView.json @@ -0,0 +1,8 @@ +{ + "title1": "Verifica email in corso", + "title2": "Attendi mentre la tua email viene verificata. Non aggiornare questa pagina.", + "emailVerified": "Email verificata con successo!", + "tokenNotFound": "Token non trovato", + "tokenExpired": "Token scaduto", + "verificationFailed": "Verifica email fallita" +} diff --git a/frontend/app/src/i18n/it/gears/gearView.json b/frontend/app/src/i18n/it/gears/gearView.json new file mode 100644 index 000000000..a0a752d0a --- /dev/null +++ b/frontend/app/src/i18n/it/gears/gearView.json @@ -0,0 +1,31 @@ +{ + "buttonAddComponent": "Aggiungi componente", + "buttonEditGear": "Modifica attrezzatura", + "buttonDeleteGear": "Elimina attrezzatura", + "modalDeleteGearBody1": "Sei sicuro di voler eliminare l'attrezzatura", + "modalDeleteGearBody2": "Questa azione non può essere annullata.", + "gearIsActiveBadge": "Attiva", + "gearIsInactiveBadge": "Inattiva", + "gearTypeOption1": "Bici", + "gearTypeOption2": "Scarpe", + "gearTypeOption3": "Muta", + "gearTypeOption4": "Racchetta", + "gearTypeOption5": "Sci", + "gearTypeOption6": "Snowboard", + "gearTypeOption7": "Windsurf", + "gearTypeOption8": "Tavola per sport acquatici", + "gearFromStrava": "Strava", + "gearFromGarminConnect": "Garmin Connect", + "labelBrand": "Marca", + "labelModel": "Modello", + "labelPurchaseValue": "Valore d'acquisto", + "labelTotalCost": "Costo totale", + "labelDistance": "Distanza", + "labelTime": "Tempo", + "titleComponents": "Componenti", + "showInactiveComponents": "Mostra inattivi", + "title": "Attività", + "successGearEdited": "Attrezzatura modificata con successo", + "errorGearDelete": "Errore nell'eliminazione dell'attrezzatura", + "errorFetchingGears": "Errore nel recupero dell'attrezzatura" +} diff --git a/frontend/app/src/i18n/it/gears/gearsView.json b/frontend/app/src/i18n/it/gears/gearsView.json new file mode 100644 index 000000000..a37597b82 --- /dev/null +++ b/frontend/app/src/i18n/it/gears/gearsView.json @@ -0,0 +1,13 @@ +{ + "title": "Attrezzatura", + "buttonAddGear": "Aggiungi attrezzatura", + "subTitleSearchGearByNickname": "Cerca attrezzatura per soprannome", + "placeholderSearchGearByNickname": "Soprannome", + "buttonSearchGear": "Cerca attrezzatura", + "displayUserNumberOfGears1": "C'è un totale di ", + "displayUserNumberOfGears2": " attrezzatura/e (", + "displayUserNumberOfGears3": " caricate):", + "successGearDeleted": "Attrezzatura eliminata con successo", + "errorGearNotFound": "Attrezzatura non trovata", + "errorFetchingGears": "Errore nel recupero dell'attrezzatura" +} diff --git a/frontend/app/src/i18n/it/generalItems.json b/frontend/app/src/i18n/it/generalItems.json new file mode 100644 index 000000000..d2686b721 --- /dev/null +++ b/frontend/app/src/i18n/it/generalItems.json @@ -0,0 +1,79 @@ +{ + "buttonBack": "Indietro", + "buttonClose": "Chiudi", + "true": "Vero", + "false": "Falso", + "yes": "Sì", + "no": "No", + "ofWithSpaces": " di ", + "languageOption1": "Inglese (US)", + "languageOption2": "Catalano (CA)", + "languageOption3": "Portoghese (PT)", + "languageOption4": "Tedesco (DE)", + "languageOption5": "Francese (FR)", + "languageOption6": "Olandese (NL)", + "languageOption7": "Spagnolo (ES)", + "languageOption8": "Cinese (Semplificato)", + "languageOption9": "Cinese (Tradizionale)", + "languageOption10": "Galiziano (GL)", + "languageOption11": "Italiano (IT)", + "firstDayOfWeekOption0": "Domenica", + "firstDayOfWeekOption1": "Lunedì", + "firstDayOfWeekOption2": "Martedì", + "firstDayOfWeekOption3": "Mercoledì", + "firstDayOfWeekOption4": "Giovedì", + "firstDayOfWeekOption5": "Venerdì", + "firstDayOfWeekOption6": "Sabato", + "buttonlistAll": "Elenca tutto", + "requiredField": "Campi obbligatori", + "labelNotApplicable": "N/D", + "labelNoData": "Nessun dato", + "unitsCm": "cm", + "unitsCms": "cms", + "unitsM": "m", + "unitsKm": "km", + "unitsKmH": "km/h", + "unitsKg": "kg", + "labelWeightInKg": "Peso in kg", + "unitsInches": "pollici", + "unitsFeet": "piedi", + "unitsFeetShort": "ft", + "unitsFeetInches": "piedi, pollici", + "unitsMiles": "mi", + "unitsYards": "yd", + "unitsMph": "mph", + "unitsLbs": "lbs", + "labelWeightInLbs": "Peso in lbs", + "unitsCalories": "kcal", + "unitsBpm": "bpm", + "labelHRinBpm": "Frequenza cardiaca in bpm", + "unitsWattsShort": "W", + "labelPowerInWatts": "Potenza in watt", + "labelCadenceInRpm": "Cadenza in rpm", + "unitsSpm": "spm", + "labelElevationInMeters": "Elevazione in metri", + "labelElevationInFeet": "Elevazione in piedi", + "labelVelocityInKmH": "Velocità in km/h", + "labelVelocityInMph": "Velocità in mph", + "labelPaceInMinKm": "Ritmo in min/km", + "labelPaceInMin100m": "Ritmo in min/100m", + "labelPaceInMinMile": "Ritmo in min/miglio", + "labelPaceInMin100yd": "Ritmo in min/100yd", + "labelLaps": "Giri", + "labelRest": "Riposo", + "labelStrokeRateInSpm": "Frequenza di bracciata in spm", + "startDateLabel": "Data di inizio", + "endDateLabel": "Data di fine", + "cancel": "Annulla", + "loading": "Caricamento", + "betaTag": " (Beta)", + "currencyEuro": "Euro", + "currencyEuroSymbol": "€", + "currencyDollar": "Dollaro USA", + "currencyDollarSymbol": "$", + "currencyPound": "Sterlina britannica", + "currencyPoundSymbol": "£", + "genderMale": "Maschio", + "genderFemale": "Femmina", + "genderUnspecified": "Non specificato" +} diff --git a/frontend/app/src/i18n/it/healthView.json b/frontend/app/src/i18n/it/healthView.json new file mode 100644 index 000000000..f1050541a --- /dev/null +++ b/frontend/app/src/i18n/it/healthView.json @@ -0,0 +1,5 @@ +{ + "title": "Salute", + "errorFetchingHealthData": "Errore nel recupero dei dati sulla salute", + "errorFetchingHealthTargets": "Errore nel recupero degli obiettivi di salute" +} diff --git a/frontend/app/src/i18n/it/homeView.json b/frontend/app/src/i18n/it/homeView.json new file mode 100644 index 000000000..4a127b940 --- /dev/null +++ b/frontend/app/src/i18n/it/homeView.json @@ -0,0 +1,18 @@ +{ + "title": "Endurain", + "buttonAddActivity": "Aggiungi attività", + "fieldLabelUploadFileType": "Carica file .gpx, .fit, .tcx o .gz", + "radioUserActivities": "Le mie attività", + "radioFollowerActivities": "Attività dei follower", + "pillIsHidden": "Nascosto", + "successActivityAdded": "Attività aggiunta con successo", + "errorActivityAdded": "Errore nell'aggiunta dell'attività", + "refreshingActivities": "Aggiornamento attività dai servizi collegati", + "successActivitiesRefreshed": "Attività aggiornate con successo", + "errorActivityNotFound": "Attività non trovata", + "processingActivity": "Elaborazione attività", + "successActivityDeleted": "Attività eliminata con successo", + "errorFetchingUserStats": "Errore nel recupero delle statistiche utente", + "errorFetchingUserActivities": "Errore nel recupero delle attività utente", + "errorFetchingMedia": "Errore nel recupero dei media per l'attività" +} diff --git a/frontend/app/src/i18n/it/loginView.json b/frontend/app/src/i18n/it/loginView.json new file mode 100644 index 000000000..c8723168a --- /dev/null +++ b/frontend/app/src/i18n/it/loginView.json @@ -0,0 +1,37 @@ +{ + "sessionExpired": "Sessione utente scaduta", + "logoutSuccess": "Disconnessione avvenuta con successo", + "error401": "Nome utente o password non validi", + "error403": "Non hai i permessi per accedere a questa risorsa", + "error500": "Non è stato possibile connettersi al server. Riprova più tardi", + "errorUndefined": "Non è stato possibile connettersi al server. Riprova più tardi", + "subtitle": "Accedi qui sotto", + "username": "Nome utente", + "password": "Password", + "mfaCode": "Codice MFA", + "mfaRequired": "Autenticazione a più fattori richiesta. Inserisci il tuo codice a 6 cifre.", + "verifyMFAButton": "Verifica MFA", + "invalidMFACode": "Codice MFA non valido. Riprova.", + "neverExpires": "Ricordami (non selezionare se stai usando un computer condiviso)", + "signInButton": "Accedi", + "signUpText": "Vuoi registrarti?", + "signUpButton": "Registrati", + "errorPublicActivityNotFound": "Attività pubblica non trovata", + "errorPublic_shareable_links": "I link condivisibili pubblici non sono consentiti. Per visualizzare questa attività, devi essere autenticato", + "forgotPassword": "Hai dimenticato la password?", + "passwordResetInvalidLink": "Nessun token di ripristino password fornito", + "passwordResetSuccess": "La tua password è stata ripristinata con successo", + "forgotPasswordModalTitle": "Password dimenticata", + "forgotPasswordModalEmailLabel": "Indirizzo email", + "forgotPasswordModalEmailHelp": "Inserisci l'indirizzo email associato al tuo account. Verrà inviata un'email con un link per ripristinare la password.", + "forgotPasswordModalSubmitButton": "Invia link di ripristino", + "forgotPasswordModalEmailRequired": "L'indirizzo email è obbligatorio", + "forgotPasswordModalRequestSuccess": "Se l'email esiste nel sistema, verrà inviato un link di ripristino password all'indirizzo email fornito", + "forgotPasswordModalRequestError": "Impossibile elaborare la richiesta di ripristino password", + "forgotPasswordModalEmailNotConfigured": "Il servizio email non è configurato. Contatta l'amministratore", + "forgotPasswordModalUnableToSendEmail": "Impossibile inviare l'email. Riprova più tardi o contatta l'amministratore", + "signUpLink": "Non hai un account? Registrati", + "emailVerificationSent": "Controlla la tua email per le istruzioni di verifica", + "adminApprovalRequired": "Il tuo account è in attesa di approvazione dell'amministratore", + "verifyEmailInvalidLink": "Link di verifica email non valido" +} diff --git a/frontend/app/src/i18n/it/notFoundView.json b/frontend/app/src/i18n/it/notFoundView.json new file mode 100644 index 000000000..5b2c1c4c9 --- /dev/null +++ b/frontend/app/src/i18n/it/notFoundView.json @@ -0,0 +1,5 @@ +{ + "title": "Oops! Pagina non trovata", + "subTitle": "La pagina che stai cercando non esiste o è stata modificata.", + "backToHomeButton": "Torna alla home" +} diff --git a/frontend/app/src/i18n/it/resetPassword.json b/frontend/app/src/i18n/it/resetPassword.json new file mode 100644 index 000000000..053bfba2e --- /dev/null +++ b/frontend/app/src/i18n/it/resetPassword.json @@ -0,0 +1,11 @@ +{ + "title": "Ripristina password", + "newPasswordLabel": "Nuova password", + "confirmPasswordLabel": "Conferma nuova password", + "submitButton": "Ripristina password", + "backToLogin": "Torna al login", + "passwordComplexityError": "La password deve contenere almeno 8 caratteri, includere una lettera maiuscola, un numero e un carattere speciale", + "passwordMismatchError": "Le password non corrispondono", + "resetError": "Impossibile ripristinare la password", + "invalidOrExpiredToken": "Token di ripristino password non valido o scaduto" +} diff --git a/frontend/app/src/i18n/it/searchView.json b/frontend/app/src/i18n/it/searchView.json new file mode 100644 index 000000000..564c489ae --- /dev/null +++ b/frontend/app/src/i18n/it/searchView.json @@ -0,0 +1,37 @@ +{ + "searchSelectLabel": "Cerca", + "searchSelectOptionActivity": "Attività", + "searchSelectOptionUser": "Utente", + "searchSelectOptionGear": "Attrezzatura", + "searchSelectActivityType0": "Tutti", + "searchSelectActivityType1": "Corsa", + "searchSelectActivityType2": "Ciclismo", + "searchSelectActivityType3": "Nuoto", + "searchSelectActivityType4": "Allenamento", + "searchSelectActivityType5": "Camminata", + "searchSelectActivityType6": "Escursione", + "searchSelectActivityType7": "Canottaggio", + "searchSelectActivityType8": "Yoga", + "searchSelectActivityType9": "Sci", + "searchSelectActivityType10": "Snowboard", + "searchSelectActivityType11": "Sport con racchetta", + "searchSelectActivityType12": "Windsurf", + "searchSelectActivityType13": "Stand up paddle", + "searchSelectActivityType14": "Surf", + "searchSelectActivityType15": "Pattinaggio su ghiaccio", + "searchSelectActivityType16": "Calcio", + "searchSelectGearType0": "Tutti", + "searchSelectGearType1": "Bici", + "searchSelectGearType2": "Scarpe", + "searchSelectGearType3": "Muta", + "searchSelectGearType4": "Racchetta", + "searchSelectGearType5": "Sci", + "searchSelectGearType6": "Snowboard", + "searchSelectGearType7": "Windsurf", + "searchSelectGearType8": "Tavola per sport acquatici", + "resultIsInactiveBadge": "Inattivo", + "searchInputPlaceholder": "Testo di ricerca", + "errorFetchingUserWithUsernameContains": "Errore nel recupero dell'utente con nome utente contenente", + "errorFetchingActivityWithNameContains": "Errore nel recupero dell'attività con nome contenente", + "errorFetchingGearWithNicknameContains": "Errore nel recupero dell'attrezzatura con soprannome contenente" +} diff --git a/frontend/app/src/i18n/it/settingsView.json b/frontend/app/src/i18n/it/settingsView.json new file mode 100644 index 000000000..f69c8f0fc --- /dev/null +++ b/frontend/app/src/i18n/it/settingsView.json @@ -0,0 +1,3 @@ +{ + "title": "Impostazioni" +} diff --git a/frontend/app/src/i18n/it/signupView.json b/frontend/app/src/i18n/it/signupView.json new file mode 100644 index 000000000..330b60f7d --- /dev/null +++ b/frontend/app/src/i18n/it/signupView.json @@ -0,0 +1,33 @@ +{ + "title": "Registrati", + "subtitle": "Crea il tuo account qui sotto", + "name": "Nome completo", + "username": "Nome utente", + "email": "Indirizzo email", + "password": "Password", + "optionalFields": " Campi opzionali", + "preferredLanguage": "Lingua preferita", + "city": "Città", + "birthdate": "Data di nascita", + "gender": "Genere", + "units": "Unità di misura", + "metric": "Metriche", + "imperial": "Imperiali", + "height": "Altezza", + "firstDayOfWeek": "Primo giorno della settimana", + "currency": "Valuta", + "signUpButton": "Crea account", + "alreadyHaveAccount": "Hai già un account? Accedi", + "success": "Registrazione completata con successo", + "errorNameRequired": "Il nome completo è obbligatorio", + "errorUsernameRequired": "Il nome utente è obbligatorio", + "errorEmailRequired": "L'indirizzo email è obbligatorio", + "errorEmailInvalid": "Inserisci un indirizzo email valido", + "errorPasswordRequired": "La password è obbligatoria", + "errorPasswordTooShort": "La password deve contenere almeno 8 caratteri", + "errorUserExists": "Esiste già un utente con questa email o nome utente", + "errorSignupDisabled": "La registrazione non è abilitata su questo server", + "errorValidation": "Controlla i dati inseriti e riprova", + "errorGeneral": "Si è verificato un errore durante la registrazione", + "signupDisabled": "La registrazione utente non è abilitata su questo server" +} diff --git a/frontend/app/src/i18n/it/strava/stravaCallbackView.json b/frontend/app/src/i18n/it/strava/stravaCallbackView.json new file mode 100644 index 000000000..0dd5b8450 --- /dev/null +++ b/frontend/app/src/i18n/it/strava/stravaCallbackView.json @@ -0,0 +1,4 @@ +{ + "stravaCallbackViewTitle1": "Gestione callback Strava", + "stravaCallbackViewTitle2": "Attendi mentre Strava viene collegato al tuo account. Non aggiornare questa pagina." +} diff --git a/frontend/app/src/i18n/it/summaryView.json b/frontend/app/src/i18n/it/summaryView.json new file mode 100644 index 000000000..c97943efb --- /dev/null +++ b/frontend/app/src/i18n/it/summaryView.json @@ -0,0 +1,44 @@ +{ + "title": "Riepilogo attività", + "filterLabelActivityType": "Tipo", + "filterOptionAllTypes": "Tutti i tipi", + "labelViewType": "Visualizza per", + "optionDaily": "Giornaliero", + "optionWeekly": "Settimanale", + "optionMonthly": "Mensile", + "optionYearly": "Annuale", + "optionLifetime": "Totale", + "labelSelectWeek": "Settimana", + "labelSelectMonth": "Mese", + "labelSelectYear": "Anno", + "labelSelectPeriod": "Periodo", + "buttonPreviousPeriod": "Precedente", + "buttonNextPeriod": "Successivo", + "headerSummaryFor": "Riepilogo per {period}", + "headerBreakdown": "Dettagli", + "headerActivitiesInPeriod": "Attività nel periodo", + "errorLoadingActivityTypes": "Errore nel caricamento dei tipi di attività", + "errorLoadingSummary": "Errore nel caricamento del riepilogo", + "errorLoadingSummaryLoad": "Errore nel caricamento del riepilogo all'avvio della pagina", + "errorFetchingActivities": "Errore nel recupero delle attività", + "noDataForPeriod": "Nessun dato per questo periodo.", + "colDay": "Giorno", + "colWeekNum": "Settimana n.", + "colMonth": "Mese", + "colDistance": "Distanza", + "colDuration": "Durata", + "colElevation": "Elevazione", + "colCalories": "Calorie", + "colActivities": "Attività", + "metricTotalDistance": "Distanza totale", + "metricTotalDuration": "Durata totale", + "metricTotalElevation": "Elevazione totale", + "metricTotalCalories": "Calorie totali", + "metricTotalActivities": "Attività totali", + "invalidYearSelected": "Anno selezionato non valido", + "headerTypeBreakdown": "Dettagli per tipo", + "colActivityType": "Tipo", + "headerYear": "Anno {year}", + "headerWeekStarting": "Settimana del {date}", + "colYear": "Anno" +} diff --git a/frontend/app/src/i18n/it/userView.json b/frontend/app/src/i18n/it/userView.json new file mode 100644 index 000000000..4023755b3 --- /dev/null +++ b/frontend/app/src/i18n/it/userView.json @@ -0,0 +1,32 @@ +{ + "thisMonthActivitiesNumber": "Attività di questo mese", + "userFollowing": "Seguiti", + "userFollowers": "Follower", + "navigationActivities": "Attività", + "navigationFollowing": "Seguiti", + "navigationFollowers": "Follower", + "navigationUserSettings": "Impostazioni utente", + "navigationFollow": "Segui", + "modalFollowUserTitle": "Segui utente", + "modalFollowUserBody": "Sei sicuro di voler seguire l'utente ", + "errorUnableToSendFollow": "Impossibile inviare la richiesta di seguito all'utente", + "successFollowRequestSent": "Richiesta di seguito inviata", + "navigationRequestSent": "Richiesta inviata", + "modalCancelFollowRequestTitle": "Annulla richiesta di seguito", + "modalCancelFollowRequestBody": "Sei sicuro di voler annullare la richiesta di seguito per l'utente ", + "errorUnableToCancelFollowRequest": "Impossibile annullare la richiesta di seguito per l'utente", + "successFollowRequestCancelled": "Richiesta di seguito annullata", + "navigationUnfollow": "Smetti di seguire", + "modalUnfollowUserTitle": "Smetti di seguire l'utente", + "modalUnfollowUserBody": "Sei sicuro di voler smettere di seguire l'utente ", + "errorUnableToUnfollow": "Impossibile smettere di seguire l'utente", + "successUserUnfollowed": "Hai smesso di seguire l'utente", + "activitiesPaginationWeek0": "Questa settimana", + "activitiesPaginationWeek51": "Un anno fa", + "successFollowingDeleted": "Seguito eliminato", + "successFollowerDeleted": "Follower eliminato", + "successFollowerAccepted": "Follower accettato", + "errorFetchingUserStats": "Errore nel recupero delle statistiche utente", + "errorFetchingUserFollowers": "Errore nel recupero dei follower dell'utente", + "errorFetchingUserActivities": "Errore nel recupero delle attività utente" +} From c39291ef70ec3c61800a7eecdbe53e00dd4c504b Mon Sep 17 00:00:00 2001 From: Filippo Pisano Date: Mon, 3 Nov 2025 11:38:11 +0100 Subject: [PATCH 2/4] Add Italian language --- .../components/Navbar/NavbarLanguageSwitcherComponent.vue | 1 + .../SettingsLanguageSwitcherComponent.vue | 1 + .../app/src/components/Settings/SettingsUserProfileZone.vue | 3 +++ .../SettingsUsersZone/UsersAddEditUserModalComponent.vue | 1 + frontend/app/src/i18n/ca/generalItems.json | 1 + frontend/app/src/i18n/cn/generalItems.json | 1 + frontend/app/src/i18n/de/generalItems.json | 1 + frontend/app/src/i18n/es/generalItems.json | 1 + frontend/app/src/i18n/fr/generalItems.json | 1 + frontend/app/src/i18n/gl/generalItems.json | 1 + frontend/app/src/i18n/index.js | 6 +++--- frontend/app/src/i18n/nl/generalItems.json | 1 + frontend/app/src/i18n/pt/generalItems.json | 1 + frontend/app/src/i18n/tw/generalItems.json | 1 + frontend/app/src/i18n/us/generalItems.json | 1 + frontend/app/src/views/SignUpView.vue | 1 + 16 files changed, 20 insertions(+), 3 deletions(-) diff --git a/frontend/app/src/components/Navbar/NavbarLanguageSwitcherComponent.vue b/frontend/app/src/components/Navbar/NavbarLanguageSwitcherComponent.vue index f7e969167..c57e9f10d 100644 --- a/frontend/app/src/components/Navbar/NavbarLanguageSwitcherComponent.vue +++ b/frontend/app/src/components/Navbar/NavbarLanguageSwitcherComponent.vue @@ -45,6 +45,7 @@ const languages = computed(() => [ { value: 'de', label: t('generalItems.languageOption4') }, { value: 'fr', label: t('generalItems.languageOption5') }, { value: 'gl', label: t('generalItems.languageOption10') }, + { value: 'it', label: t('generalItems.languageOption11') }, { value: 'nl', label: t('generalItems.languageOption6') }, { value: 'pt', label: t('generalItems.languageOption3') }, { value: 'es', label: t('generalItems.languageOption7') }, diff --git a/frontend/app/src/components/Settings/SettingsGeneralZone/SettingsLanguageSwitcherComponent.vue b/frontend/app/src/components/Settings/SettingsGeneralZone/SettingsLanguageSwitcherComponent.vue index 9d0d67663..31e4270bd 100644 --- a/frontend/app/src/components/Settings/SettingsGeneralZone/SettingsLanguageSwitcherComponent.vue +++ b/frontend/app/src/components/Settings/SettingsGeneralZone/SettingsLanguageSwitcherComponent.vue @@ -31,6 +31,7 @@ export default { { value: 'de', label: t('generalItems.languageOption4') }, { value: 'fr', label: t('generalItems.languageOption5') }, { value: 'gl', label: t('generalItems.languageOption10') }, + { value: 'it', label: t('generalItems.languageOption11') }, { value: 'nl', label: t('generalItems.languageOption6') }, { value: 'pt', label: t('generalItems.languageOption3') }, { value: 'es', label: t('generalItems.languageOption7') }, diff --git a/frontend/app/src/components/Settings/SettingsUserProfileZone.vue b/frontend/app/src/components/Settings/SettingsUserProfileZone.vue index 709e2cb84..445de03fa 100644 --- a/frontend/app/src/components/Settings/SettingsUserProfileZone.vue +++ b/frontend/app/src/components/Settings/SettingsUserProfileZone.vue @@ -164,6 +164,9 @@ {{ $t('generalItems.languageOption10') }} + {{ + $t('generalItems.languageOption11') + }} {{ $t('generalItems.languageOption6') }} diff --git a/frontend/app/src/components/Settings/SettingsUsersZone/UsersAddEditUserModalComponent.vue b/frontend/app/src/components/Settings/SettingsUsersZone/UsersAddEditUserModalComponent.vue index afbf7c350..f7ed51ad4 100644 --- a/frontend/app/src/components/Settings/SettingsUsersZone/UsersAddEditUserModalComponent.vue +++ b/frontend/app/src/components/Settings/SettingsUsersZone/UsersAddEditUserModalComponent.vue @@ -331,6 +331,7 @@ + diff --git a/frontend/app/src/i18n/ca/generalItems.json b/frontend/app/src/i18n/ca/generalItems.json index 966d16579..97a3fbc41 100644 --- a/frontend/app/src/i18n/ca/generalItems.json +++ b/frontend/app/src/i18n/ca/generalItems.json @@ -16,6 +16,7 @@ "languageOption8": "Xinès (Simplificat)", "languageOption9": "Xinès (Tradicional)", "languageOption10": "Gallec (GL)", + "languageOption11": "Italià (IT)", "firstDayOfWeekOption0": "Diumenge", "firstDayOfWeekOption1": "Dilluns", "firstDayOfWeekOption2": "Dimarts", diff --git a/frontend/app/src/i18n/cn/generalItems.json b/frontend/app/src/i18n/cn/generalItems.json index 70f2d872c..8f6468b94 100644 --- a/frontend/app/src/i18n/cn/generalItems.json +++ b/frontend/app/src/i18n/cn/generalItems.json @@ -16,6 +16,7 @@ "languageOption8": "Chinese (Simplified)", "languageOption9": "Chinese (Traditional)", "languageOption10": "Galician (GL)", + "languageOption11": "Italian (IT)", "firstDayOfWeekOption0": "Sunday", "firstDayOfWeekOption1": "Monday", "firstDayOfWeekOption2": "Tuesday", diff --git a/frontend/app/src/i18n/de/generalItems.json b/frontend/app/src/i18n/de/generalItems.json index 03f4a301f..af3c29f7c 100644 --- a/frontend/app/src/i18n/de/generalItems.json +++ b/frontend/app/src/i18n/de/generalItems.json @@ -16,6 +16,7 @@ "languageOption8": "Chinese (Simplified)", "languageOption9": "Chinese (Traditional)", "languageOption10": "Galician (GL)", + "languageOption11": "Italienisch (IT)", "firstDayOfWeekOption0": "Sonntag", "firstDayOfWeekOption1": "Montag", "firstDayOfWeekOption2": "Dienstag", diff --git a/frontend/app/src/i18n/es/generalItems.json b/frontend/app/src/i18n/es/generalItems.json index 01e67f453..a9c76d170 100644 --- a/frontend/app/src/i18n/es/generalItems.json +++ b/frontend/app/src/i18n/es/generalItems.json @@ -16,6 +16,7 @@ "languageOption8": "Chinese (Simplified)", "languageOption9": "Chinese (Traditional)", "languageOption10": "Galician (GL)", + "languageOption11": "Italiano (IT)", "firstDayOfWeekOption0": "Domingo", "firstDayOfWeekOption1": "Lunes", "firstDayOfWeekOption2": "Martes", diff --git a/frontend/app/src/i18n/fr/generalItems.json b/frontend/app/src/i18n/fr/generalItems.json index 90d0cf1ac..d5d24dad1 100644 --- a/frontend/app/src/i18n/fr/generalItems.json +++ b/frontend/app/src/i18n/fr/generalItems.json @@ -16,6 +16,7 @@ "languageOption8": "Chinese (Simplified)", "languageOption9": "Chinese (Traditional)", "languageOption10": "Galician (GL)", + "languageOption11": "Italien (IT)", "firstDayOfWeekOption0": "dimanche", "firstDayOfWeekOption1": "lundi", "firstDayOfWeekOption2": "mardi", diff --git a/frontend/app/src/i18n/gl/generalItems.json b/frontend/app/src/i18n/gl/generalItems.json index 08dd87a6c..475c19876 100644 --- a/frontend/app/src/i18n/gl/generalItems.json +++ b/frontend/app/src/i18n/gl/generalItems.json @@ -16,6 +16,7 @@ "languageOption8": "Chinés (Simplificado)", "languageOption9": "Chinés (Tradicional)", "languageOption10": "Galego (GL)", + "languageOption11": "Italiano (IT)", "firstDayOfWeekOption0": "Domingo", "firstDayOfWeekOption1": "Luns", "firstDayOfWeekOption2": "Martes", diff --git a/frontend/app/src/i18n/index.js b/frontend/app/src/i18n/index.js index 675ee1f4b..0117a054e 100644 --- a/frontend/app/src/i18n/index.js +++ b/frontend/app/src/i18n/index.js @@ -2,12 +2,12 @@ import { createI18n } from 'vue-i18n' // Bundle only locale JSON files (root + nested), eagerly so they're in dist const translationModules = { - ...import.meta.glob('./{ca,de,es,fr,gl,nl,pt,us,cn,tw}/*.json', { eager: true }), - ...import.meta.glob('./{ca,de,es,fr,gl,nl,pt,us,cn,tw}/**/*.json', { eager: true }) + ...import.meta.glob('./{ca,de,es,fr,gl,it,nl,pt,us,cn,tw}/*.json', { eager: true }), + ...import.meta.glob('./{ca,de,es,fr,gl,it,nl,pt,us,cn,tw}/**/*.json', { eager: true }) } // Define available locales -const locales = ['ca', 'de', 'es', 'fr', 'gl', 'nl', 'pt', 'us', 'cn', 'tw'] +const locales = ['ca', 'de', 'es', 'fr', 'gl', 'it', 'nl', 'pt', 'us', 'cn', 'tw'] // Define all component paths const componentPaths = { diff --git a/frontend/app/src/i18n/nl/generalItems.json b/frontend/app/src/i18n/nl/generalItems.json index f357181aa..71cea2e08 100644 --- a/frontend/app/src/i18n/nl/generalItems.json +++ b/frontend/app/src/i18n/nl/generalItems.json @@ -16,6 +16,7 @@ "languageOption8": "Chinese (Simplified)", "languageOption9": "Chinese (Traditional)", "languageOption10": "Galician (GL)", + "languageOption11": "Italiaans (IT)", "firstDayOfWeekOption0": "Sunday", "firstDayOfWeekOption1": "Monday", "firstDayOfWeekOption2": "Tuesday", diff --git a/frontend/app/src/i18n/pt/generalItems.json b/frontend/app/src/i18n/pt/generalItems.json index e7d14768c..8c3318697 100644 --- a/frontend/app/src/i18n/pt/generalItems.json +++ b/frontend/app/src/i18n/pt/generalItems.json @@ -16,6 +16,7 @@ "languageOption8": "Chinês (Simplificado)", "languageOption9": "Chinês (Tradicional)", "languageOption10": "Galego (GL)", + "languageOption11": "Italiano (IT)", "firstDayOfWeekOption0": "Domingo", "firstDayOfWeekOption1": "Segunda", "firstDayOfWeekOption2": "Terça", diff --git a/frontend/app/src/i18n/tw/generalItems.json b/frontend/app/src/i18n/tw/generalItems.json index 70f2d872c..8f6468b94 100644 --- a/frontend/app/src/i18n/tw/generalItems.json +++ b/frontend/app/src/i18n/tw/generalItems.json @@ -16,6 +16,7 @@ "languageOption8": "Chinese (Simplified)", "languageOption9": "Chinese (Traditional)", "languageOption10": "Galician (GL)", + "languageOption11": "Italian (IT)", "firstDayOfWeekOption0": "Sunday", "firstDayOfWeekOption1": "Monday", "firstDayOfWeekOption2": "Tuesday", diff --git a/frontend/app/src/i18n/us/generalItems.json b/frontend/app/src/i18n/us/generalItems.json index 70f2d872c..8f6468b94 100644 --- a/frontend/app/src/i18n/us/generalItems.json +++ b/frontend/app/src/i18n/us/generalItems.json @@ -16,6 +16,7 @@ "languageOption8": "Chinese (Simplified)", "languageOption9": "Chinese (Traditional)", "languageOption10": "Galician (GL)", + "languageOption11": "Italian (IT)", "firstDayOfWeekOption0": "Sunday", "firstDayOfWeekOption1": "Monday", "firstDayOfWeekOption2": "Tuesday", diff --git a/frontend/app/src/views/SignUpView.vue b/frontend/app/src/views/SignUpView.vue index 4980d407c..cf451ecc9 100644 --- a/frontend/app/src/views/SignUpView.vue +++ b/frontend/app/src/views/SignUpView.vue @@ -126,6 +126,7 @@ + From 016120266659087f254c6247919326d76b54beb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Vit=C3=B3ria=20Silva?= Date: Mon, 3 Nov 2025 11:21:51 +0000 Subject: [PATCH 3/4] Squashed commit of the following: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit 4ffbbeac6d77f7544a9d531f76fd06a3a259f1b1 Author: João Vitória Silva Date: Fri Oct 31 16:58:35 2025 +0000 New translations usergoalsstatscomponent.json (Catalan) commit 40969032a5e530069d2d8b3c9e7381f9fd7780ab Author: João Vitória Silva Date: Fri Oct 31 16:58:34 2025 +0000 New translations activityitems.json (Catalan) commit eaae246fcb8f139b37c8c16dc467df0367f10e05 Author: João Vitória Silva Date: Fri Oct 31 16:58:33 2025 +0000 New translations searchview.json (Catalan) commit 3bc94a50fdc0b838300a9f5bb30c1edd9619ed31 Author: João Vitória Silva Date: Fri Oct 31 16:58:32 2025 +0000 New translations settingsuserprofilezonecomponent.json (Catalan) commit 4639c8a14c2731b1d5c4bd4e684f67cc7a14994f Author: João Vitória Silva Date: Fri Oct 31 16:58:31 2025 +0000 New translations editactivitymodalcomponent.json (Catalan) commit baf157b7c0c3539f6ba1384284fddc223796e7bc Author: João Vitória Silva Date: Fri Oct 31 13:52:29 2025 +0000 New translations settingsimportzonecomponent.json (Portuguese) commit 87da2580eabb514cee587577ed4d8bf9d5a99ed1 Author: João Vitória Silva Date: Fri Oct 31 13:52:28 2025 +0000 New translations activityitems.json (Portuguese) commit 06164ce1174ddbcd608f0d1241fbeb8384122be4 Author: João Vitória Silva Date: Fri Oct 31 13:52:27 2025 +0000 New translations editactivitymodalcomponent.json (Portuguese) commit 0f7c480dd531fa44bbdd533338d0c0ff44dee9aa Author: João Vitória Silva Date: Fri Oct 31 12:00:54 2025 +0000 New translations activityitems.json (Galician) commit 2895aa9185912278c5fcb314d6bf139aaea14f23 Author: João Vitória Silva Date: Fri Oct 31 12:00:53 2025 +0000 New translations editactivitymodalcomponent.json (Galician) commit 1b98b78506776c7e685d411748917c84dbfe9785 Author: João Vitória Silva Date: Fri Oct 31 12:00:51 2025 +0000 New translations activityitems.json (Chinese Traditional) commit b13ada8ce0d9ed4fc434aef67444815e0b3e0ef7 Author: João Vitória Silva Date: Fri Oct 31 12:00:50 2025 +0000 New translations activityitems.json (Chinese Simplified) commit 2f1b2ec59130378164aa32018b0af1a32826159f Author: João Vitória Silva Date: Fri Oct 31 12:00:49 2025 +0000 New translations editactivitymodalcomponent.json (Chinese Traditional) commit ccd9a6dac56618f1eb3ec916ad5d5bce30cf28c2 Author: João Vitória Silva Date: Fri Oct 31 12:00:48 2025 +0000 New translations editactivitymodalcomponent.json (Chinese Simplified) commit 474402aa76e4f499030e24376bc1e17536a417f8 Author: João Vitória Silva Date: Fri Oct 31 12:00:47 2025 +0000 New translations activityitems.json (Portuguese) commit d6510ff3af62f7296300751f35a7647fc9f27667 Author: João Vitória Silva Date: Fri Oct 31 12:00:45 2025 +0000 New translations activityitems.json (Dutch) commit 8f9f86c34c6015b438da2729586a5f0302e00e9c Author: João Vitória Silva Date: Fri Oct 31 12:00:44 2025 +0000 New translations activityitems.json (German) commit 5cae1dfd23d1d7f26bb932c08b7bd1ecf74bbaa3 Author: João Vitória Silva Date: Fri Oct 31 12:00:43 2025 +0000 New translations activityitems.json (Catalan) commit 717dba6251847837c0a8b1b8f47c41c9e5dbcd0c Author: João Vitória Silva Date: Fri Oct 31 12:00:42 2025 +0000 New translations activityitems.json (Spanish) commit a9bdd58cb48373627eb6275a5747ea0f4e208dfb Author: João Vitória Silva Date: Fri Oct 31 12:00:41 2025 +0000 New translations activityitems.json (French) commit 72799dffbb730d6b7d8136e39d486aef558269ce Author: João Vitória Silva Date: Fri Oct 31 12:00:39 2025 +0000 New translations editactivitymodalcomponent.json (Portuguese) commit 9713dedfdb60e05d390de0ba12769f302a7d0afd Author: João Vitória Silva Date: Fri Oct 31 12:00:38 2025 +0000 New translations editactivitymodalcomponent.json (Dutch) commit 214881566fc89269d710cb6abbc67f2dfbdcff6b Author: João Vitória Silva Date: Fri Oct 31 12:00:37 2025 +0000 New translations editactivitymodalcomponent.json (German) commit 7bb59ce7a13f093095d1aca187a0eb2e56e70c0c Author: João Vitória Silva Date: Fri Oct 31 12:00:36 2025 +0000 New translations editactivitymodalcomponent.json (Catalan) commit 279e1359871589b8fbb301f6c8738b8742070c7b Author: João Vitória Silva Date: Fri Oct 31 12:00:34 2025 +0000 New translations editactivitymodalcomponent.json (Spanish) commit f8b72c35eb8f07aa084ec793772e99c4d56c1a2c Author: João Vitória Silva Date: Fri Oct 31 12:00:33 2025 +0000 New translations editactivitymodalcomponent.json (French) --- frontend/app/src/i18n/ca/activityItems.json | 5 +++-- .../activities/modals/editActivityModalComponent.json | 5 +++-- .../settings/settingsUserProfileZoneComponent.json | 2 +- .../ca/components/users/userGoalsStatsComponent.json | 2 +- frontend/app/src/i18n/ca/searchView.json | 2 +- frontend/app/src/i18n/cn/activityItems.json | 3 ++- .../activities/modals/editActivityModalComponent.json | 3 ++- frontend/app/src/i18n/de/activityItems.json | 3 ++- .../activities/modals/editActivityModalComponent.json | 3 ++- frontend/app/src/i18n/es/activityItems.json | 3 ++- .../activities/modals/editActivityModalComponent.json | 3 ++- frontend/app/src/i18n/fr/activityItems.json | 3 ++- .../activities/modals/editActivityModalComponent.json | 3 ++- frontend/app/src/i18n/gl/activityItems.json | 3 ++- .../activities/modals/editActivityModalComponent.json | 3 ++- frontend/app/src/i18n/nl/activityItems.json | 3 ++- .../activities/modals/editActivityModalComponent.json | 3 ++- frontend/app/src/i18n/pt/activityItems.json | 3 ++- .../activities/modals/editActivityModalComponent.json | 3 ++- .../settings/settingsImportZoneComponent.json | 10 +++++----- frontend/app/src/i18n/tw/activityItems.json | 3 ++- .../activities/modals/editActivityModalComponent.json | 3 ++- 22 files changed, 46 insertions(+), 28 deletions(-) diff --git a/frontend/app/src/i18n/ca/activityItems.json b/frontend/app/src/i18n/ca/activityItems.json index bee54f3ca..49fc85539 100644 --- a/frontend/app/src/i18n/ca/activityItems.json +++ b/frontend/app/src/i18n/ca/activityItems.json @@ -1,5 +1,5 @@ { - "run": "Córrer", + "run": "Correr", "trailRun": "Trail Run", "virtualRun": "Cursa virtual", "ride": "Muntar", @@ -38,5 +38,6 @@ "iceSkate": "Patinatge sobre gel", "soccer": "Futbol", "padel": "Pàdel", + "treadmillRun": "Correr en cinta", "labelWorkout": " entrenament" -} +} \ No newline at end of file diff --git a/frontend/app/src/i18n/ca/components/activities/modals/editActivityModalComponent.json b/frontend/app/src/i18n/ca/components/activities/modals/editActivityModalComponent.json index 8742f61a4..dd4af9f5a 100644 --- a/frontend/app/src/i18n/ca/components/activities/modals/editActivityModalComponent.json +++ b/frontend/app/src/i18n/ca/components/activities/modals/editActivityModalComponent.json @@ -7,7 +7,7 @@ "modalEditActivityNameLabel": "Nom", "modalEditActivityNamePlaceholder": "Nom (màx 250 caràcters)", "modalEditActivityTypeLabel": "Tipus", - "modalEditActivityTypeOption1": "Córrer", + "modalEditActivityTypeOption1": "Correr", "modalEditActivityTypeOption2": "Cursa de muntanya", "modalEditActivityTypeOption3": "Cursa virtual", "modalEditActivityTypeOption4": "Muntar", @@ -46,6 +46,7 @@ "modalEditActivityTypeOption37": "Patinatge sobre gel", "modalEditActivityTypeOption38": "Futbol", "modalEditActivityTypeOption39": "Pàdel", + "modalEditActivityTypeOption40": "Correr en cinta", "modalEditActivityVisibilityLabel": "Visibilitat", "modalEditActivityVisibilityOption0": "Públic", "modalEditActivityVisibilityOption1": "Seguidors", @@ -65,4 +66,4 @@ "modalEditActivityHideGearLabel": "Amaga equipament", "successActivityEdit": "Activitat editada correctament", "errorActivityEdit": "Error editant activitat" -} +} \ No newline at end of file diff --git a/frontend/app/src/i18n/ca/components/settings/settingsUserProfileZoneComponent.json b/frontend/app/src/i18n/ca/components/settings/settingsUserProfileZoneComponent.json index d8499f96c..d95072952 100644 --- a/frontend/app/src/i18n/ca/components/settings/settingsUserProfileZoneComponent.json +++ b/frontend/app/src/i18n/ca/components/settings/settingsUserProfileZoneComponent.json @@ -25,7 +25,7 @@ "userPhotoDeleteError": "Error esborrant foto de perfil", "titleDefaultGear": "Equipament per defecte", "subTitleShoeActivities": "Activitats de calçat", - "subTitleRun": "Córrer", + "subTitleRun": "Correr", "subTitleTrailRun": "Cursa de muntanya", "subTitleVirtualRun": "Cursa virtual", "subTitleWalk": "Caminar", diff --git a/frontend/app/src/i18n/ca/components/users/userGoalsStatsComponent.json b/frontend/app/src/i18n/ca/components/users/userGoalsStatsComponent.json index 036a4f7ab..214312742 100644 --- a/frontend/app/src/i18n/ca/components/users/userGoalsStatsComponent.json +++ b/frontend/app/src/i18n/ca/components/users/userGoalsStatsComponent.json @@ -1,6 +1,6 @@ { "title": "Objectius", - "activityTypeRun": "Córrer", + "activityTypeRun": "Correr", "activityTypeBike": "Bici", "activityTypeSwim": "Natació", "activityTypeWalk": "Caminar", diff --git a/frontend/app/src/i18n/ca/searchView.json b/frontend/app/src/i18n/ca/searchView.json index 450230312..9bc286403 100644 --- a/frontend/app/src/i18n/ca/searchView.json +++ b/frontend/app/src/i18n/ca/searchView.json @@ -4,7 +4,7 @@ "searchSelectOptionUser": "Usuari", "searchSelectOptionGear": "Equipament", "searchSelectActivityType0": "Tot", - "searchSelectActivityType1": "Córrer", + "searchSelectActivityType1": "Correr", "searchSelectActivityType2": "Muntar", "searchSelectActivityType3": "Natació", "searchSelectActivityType4": "Entrenament", diff --git a/frontend/app/src/i18n/cn/activityItems.json b/frontend/app/src/i18n/cn/activityItems.json index e52546670..e71b9a3e9 100644 --- a/frontend/app/src/i18n/cn/activityItems.json +++ b/frontend/app/src/i18n/cn/activityItems.json @@ -38,5 +38,6 @@ "iceSkate": "滑冰", "soccer": "足球", "padel": "配斗球", + "treadmillRun": "Treadmill run", "labelWorkout": " 运动" -} +} \ No newline at end of file diff --git a/frontend/app/src/i18n/cn/components/activities/modals/editActivityModalComponent.json b/frontend/app/src/i18n/cn/components/activities/modals/editActivityModalComponent.json index 7f188eadb..7d4588fa0 100644 --- a/frontend/app/src/i18n/cn/components/activities/modals/editActivityModalComponent.json +++ b/frontend/app/src/i18n/cn/components/activities/modals/editActivityModalComponent.json @@ -46,6 +46,7 @@ "modalEditActivityTypeOption37": "滑冰", "modalEditActivityTypeOption38": "足球", "modalEditActivityTypeOption39": "配斗球", + "modalEditActivityTypeOption40": "Treadmill run", "modalEditActivityVisibilityLabel": "可见性", "modalEditActivityVisibilityOption0": "公开", "modalEditActivityVisibilityOption1": "粉丝", @@ -65,4 +66,4 @@ "modalEditActivityHideGearLabel": "隐藏装备", "successActivityEdit": "活动编辑成功", "errorActivityEdit": "活动编辑失败" -} +} \ No newline at end of file diff --git a/frontend/app/src/i18n/de/activityItems.json b/frontend/app/src/i18n/de/activityItems.json index 6625f57f7..46db4bbb8 100644 --- a/frontend/app/src/i18n/de/activityItems.json +++ b/frontend/app/src/i18n/de/activityItems.json @@ -38,5 +38,6 @@ "iceSkate": "Ice skate", "soccer": "Soccer", "padel": "Padel", + "treadmillRun": "Treadmill run", "labelWorkout": " Workout" -} +} \ No newline at end of file diff --git a/frontend/app/src/i18n/de/components/activities/modals/editActivityModalComponent.json b/frontend/app/src/i18n/de/components/activities/modals/editActivityModalComponent.json index 7dd6ecb95..c91a11737 100644 --- a/frontend/app/src/i18n/de/components/activities/modals/editActivityModalComponent.json +++ b/frontend/app/src/i18n/de/components/activities/modals/editActivityModalComponent.json @@ -46,6 +46,7 @@ "modalEditActivityTypeOption37": "Ice skate", "modalEditActivityTypeOption38": "Soccer", "modalEditActivityTypeOption39": "Padel", + "modalEditActivityTypeOption40": "Treadmill run", "modalEditActivityVisibilityLabel": "Sichtbarkeit", "modalEditActivityVisibilityOption0": "Öffentlich", "modalEditActivityVisibilityOption1": "Follower", @@ -65,4 +66,4 @@ "modalEditActivityHideGearLabel": "Ausrüstung ausblenden", "successActivityEdit": "Aktivität erfolgreich bearbeitet", "errorActivityEdit": "Fehler beim Bearbeiten der Aktivität" -} +} \ No newline at end of file diff --git a/frontend/app/src/i18n/es/activityItems.json b/frontend/app/src/i18n/es/activityItems.json index 99a7b4d9f..d28abd021 100644 --- a/frontend/app/src/i18n/es/activityItems.json +++ b/frontend/app/src/i18n/es/activityItems.json @@ -38,5 +38,6 @@ "iceSkate": "Ice skate", "soccer": "Soccer", "padel": "Padel", + "treadmillRun": "Treadmill run", "labelWorkout": " entrenamiento" -} +} \ No newline at end of file diff --git a/frontend/app/src/i18n/es/components/activities/modals/editActivityModalComponent.json b/frontend/app/src/i18n/es/components/activities/modals/editActivityModalComponent.json index 1456f40d7..2c7e4c85d 100644 --- a/frontend/app/src/i18n/es/components/activities/modals/editActivityModalComponent.json +++ b/frontend/app/src/i18n/es/components/activities/modals/editActivityModalComponent.json @@ -46,6 +46,7 @@ "modalEditActivityTypeOption37": "Ice skate", "modalEditActivityTypeOption38": "Soccer", "modalEditActivityTypeOption39": "Padel", + "modalEditActivityTypeOption40": "Treadmill run", "modalEditActivityVisibilityLabel": "Visibilidad", "modalEditActivityVisibilityOption0": "Público", "modalEditActivityVisibilityOption1": "Seguidores", @@ -65,4 +66,4 @@ "modalEditActivityHideGearLabel": "Ocultar equipo", "successActivityEdit": "Actividad editada correctamente", "errorActivityEdit": "Error al editar actividad" -} +} \ No newline at end of file diff --git a/frontend/app/src/i18n/fr/activityItems.json b/frontend/app/src/i18n/fr/activityItems.json index 0bf315638..38c023bc6 100644 --- a/frontend/app/src/i18n/fr/activityItems.json +++ b/frontend/app/src/i18n/fr/activityItems.json @@ -38,5 +38,6 @@ "iceSkate": "Ice skate", "soccer": "Soccer", "padel": "Padel", + "treadmillRun": "Treadmill run", "labelWorkout": " workout" -} +} \ No newline at end of file diff --git a/frontend/app/src/i18n/fr/components/activities/modals/editActivityModalComponent.json b/frontend/app/src/i18n/fr/components/activities/modals/editActivityModalComponent.json index 0fcb8f194..ed500d550 100644 --- a/frontend/app/src/i18n/fr/components/activities/modals/editActivityModalComponent.json +++ b/frontend/app/src/i18n/fr/components/activities/modals/editActivityModalComponent.json @@ -46,6 +46,7 @@ "modalEditActivityTypeOption37": "Ice skate", "modalEditActivityTypeOption38": "Soccer", "modalEditActivityTypeOption39": "Padel", + "modalEditActivityTypeOption40": "Treadmill run", "modalEditActivityVisibilityLabel": "Visibilité", "modalEditActivityVisibilityOption0": "Publique", "modalEditActivityVisibilityOption1": "Abonnés", @@ -65,4 +66,4 @@ "modalEditActivityHideGearLabel": "Masquer l'équipement", "successActivityEdit": "L'activité a bien été modifiée", "errorActivityEdit": "Erreur lors de la modification de l'activité" -} +} \ No newline at end of file diff --git a/frontend/app/src/i18n/gl/activityItems.json b/frontend/app/src/i18n/gl/activityItems.json index 73f3778e7..534513350 100644 --- a/frontend/app/src/i18n/gl/activityItems.json +++ b/frontend/app/src/i18n/gl/activityItems.json @@ -38,5 +38,6 @@ "iceSkate": "Patinaxe sobre xeo", "soccer": "Fútbol", "padel": "Pádel", + "treadmillRun": "Treadmill run", "labelWorkout": " adestramento" -} +} \ No newline at end of file diff --git a/frontend/app/src/i18n/gl/components/activities/modals/editActivityModalComponent.json b/frontend/app/src/i18n/gl/components/activities/modals/editActivityModalComponent.json index 718facc3a..61fe250f6 100644 --- a/frontend/app/src/i18n/gl/components/activities/modals/editActivityModalComponent.json +++ b/frontend/app/src/i18n/gl/components/activities/modals/editActivityModalComponent.json @@ -46,6 +46,7 @@ "modalEditActivityTypeOption37": "Patinar sobre xeo", "modalEditActivityTypeOption38": "Fútbol", "modalEditActivityTypeOption39": "Pádel", + "modalEditActivityTypeOption40": "Treadmill run", "modalEditActivityVisibilityLabel": "Visibilidade", "modalEditActivityVisibilityOption0": "Pública", "modalEditActivityVisibilityOption1": "Para seguidoras", @@ -65,4 +66,4 @@ "modalEditActivityHideGearLabel": "Ocultar equipamento", "successActivityEdit": "Actividade editada correctamente", "errorActivityEdit": "Erro ao editar a actividade" -} +} \ No newline at end of file diff --git a/frontend/app/src/i18n/nl/activityItems.json b/frontend/app/src/i18n/nl/activityItems.json index 0bf315638..38c023bc6 100644 --- a/frontend/app/src/i18n/nl/activityItems.json +++ b/frontend/app/src/i18n/nl/activityItems.json @@ -38,5 +38,6 @@ "iceSkate": "Ice skate", "soccer": "Soccer", "padel": "Padel", + "treadmillRun": "Treadmill run", "labelWorkout": " workout" -} +} \ No newline at end of file diff --git a/frontend/app/src/i18n/nl/components/activities/modals/editActivityModalComponent.json b/frontend/app/src/i18n/nl/components/activities/modals/editActivityModalComponent.json index b370bb22b..c4fa7016e 100644 --- a/frontend/app/src/i18n/nl/components/activities/modals/editActivityModalComponent.json +++ b/frontend/app/src/i18n/nl/components/activities/modals/editActivityModalComponent.json @@ -46,6 +46,7 @@ "modalEditActivityTypeOption37": "Ice skate", "modalEditActivityTypeOption38": "Soccer", "modalEditActivityTypeOption39": "Padel", + "modalEditActivityTypeOption40": "Treadmill run", "modalEditActivityVisibilityLabel": "Zichtbaarheid", "modalEditActivityVisibilityOption0": "Openbaar", "modalEditActivityVisibilityOption1": "Volgers", @@ -65,4 +66,4 @@ "modalEditActivityHideGearLabel": "Verberg uitrusting", "successActivityEdit": "Activiteit succesvol bewerkt", "errorActivityEdit": "Fout bij bewerken activiteit" -} +} \ No newline at end of file diff --git a/frontend/app/src/i18n/pt/activityItems.json b/frontend/app/src/i18n/pt/activityItems.json index 606dec559..8a33e0ad1 100644 --- a/frontend/app/src/i18n/pt/activityItems.json +++ b/frontend/app/src/i18n/pt/activityItems.json @@ -38,5 +38,6 @@ "iceSkate": "Patinagem no gelo", "soccer": "Futebol", "padel": "Padel", + "treadmillRun": "Corrida de passadeira", "labelWorkout": " treino" -} +} \ No newline at end of file diff --git a/frontend/app/src/i18n/pt/components/activities/modals/editActivityModalComponent.json b/frontend/app/src/i18n/pt/components/activities/modals/editActivityModalComponent.json index 39ad472fa..06f7228d8 100644 --- a/frontend/app/src/i18n/pt/components/activities/modals/editActivityModalComponent.json +++ b/frontend/app/src/i18n/pt/components/activities/modals/editActivityModalComponent.json @@ -46,6 +46,7 @@ "modalEditActivityTypeOption37": "Patinagem no gelo", "modalEditActivityTypeOption38": "Futebol", "modalEditActivityTypeOption39": "Padel", + "modalEditActivityTypeOption40": "Corrida de passadeira", "modalEditActivityVisibilityLabel": "Visibilidade", "modalEditActivityVisibilityOption0": "Público", "modalEditActivityVisibilityOption1": "Seguidores", @@ -65,4 +66,4 @@ "modalEditActivityHideGearLabel": "Ocultar equipamento", "successActivityEdit": "Atividade editada com sucesso", "errorActivityEdit": "Erro ao editar atividade" -} +} \ No newline at end of file diff --git a/frontend/app/src/i18n/pt/components/settings/settingsImportZoneComponent.json b/frontend/app/src/i18n/pt/components/settings/settingsImportZoneComponent.json index ae8e5fe48..06f371972 100644 --- a/frontend/app/src/i18n/pt/components/settings/settingsImportZoneComponent.json +++ b/frontend/app/src/i18n/pt/components/settings/settingsImportZoneComponent.json @@ -4,15 +4,15 @@ "buttonBulkImport": "Importar atividades", "loadingMessageBulkImport": "A importar atividades de ficheiros...", "errorMessageUnableToImportActivities": "Ocorreu um erro ao importar as atividades", - "importTitle": "Import", + "importTitle": "Importar", "stravaGearImportTitle": "Importar equipamento do Strava", "stravaGearImportBody": "Importar equipamento de um Strava takeout (guardados na diretoria data/activity_files/bulk_import)", "stravaGearImportbuttonBikes": "Importar bicicletas do Strava", "loadingMessageStravaBikesImport": "A importar bicicletas do Strava...", "successMessageStravaBikesImport": "Bicicletas importadas do Strava com sucesso", "errorMessageUnableToImportBikes": "Ocorreu um erro ao importar as bicicletas do Strava", - "stravaImportbuttonShoes": "Import Strava shoes", - "loadingMessageStravaShoesImport": "Importing Strava shoes from file...", - "successMessageStravaShoesImport": "Strava shoes imported successfully", - "errorMessageUnableToImportShoes": "An error occurred while importing Strava shoes" + "stravaImportbuttonShoes": "Importar calçado do Strava", + "loadingMessageStravaShoesImport": "A importar calçado do Strava...", + "successMessageStravaShoesImport": "Calçado importado do Strava com sucesso", + "errorMessageUnableToImportShoes": "Ocorreu um erro ao importar o calçado do Strava" } diff --git a/frontend/app/src/i18n/tw/activityItems.json b/frontend/app/src/i18n/tw/activityItems.json index 0bf315638..38c023bc6 100644 --- a/frontend/app/src/i18n/tw/activityItems.json +++ b/frontend/app/src/i18n/tw/activityItems.json @@ -38,5 +38,6 @@ "iceSkate": "Ice skate", "soccer": "Soccer", "padel": "Padel", + "treadmillRun": "Treadmill run", "labelWorkout": " workout" -} +} \ No newline at end of file diff --git a/frontend/app/src/i18n/tw/components/activities/modals/editActivityModalComponent.json b/frontend/app/src/i18n/tw/components/activities/modals/editActivityModalComponent.json index e5f929c94..49ea4a727 100644 --- a/frontend/app/src/i18n/tw/components/activities/modals/editActivityModalComponent.json +++ b/frontend/app/src/i18n/tw/components/activities/modals/editActivityModalComponent.json @@ -46,6 +46,7 @@ "modalEditActivityTypeOption37": "Ice skate", "modalEditActivityTypeOption38": "Soccer", "modalEditActivityTypeOption39": "Padel", + "modalEditActivityTypeOption40": "Treadmill run", "modalEditActivityVisibilityLabel": "Visibility", "modalEditActivityVisibilityOption0": "Public", "modalEditActivityVisibilityOption1": "Followers", @@ -65,4 +66,4 @@ "modalEditActivityHideGearLabel": "Hide gear", "successActivityEdit": "Activity edited successfully", "errorActivityEdit": "Error editing activity" -} +} \ No newline at end of file From d193011793a92b82eb4fd5f7e9b1d7d8ef3c2bbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Vit=C3=B3ria=20Silva?= Date: Mon, 3 Nov 2025 11:27:27 +0000 Subject: [PATCH 4/4] Bump version to v0.15.6 --- backend/app/core/config.py | 2 +- backend/pyproject.toml | 2 +- frontend/app/package-lock.json | 4 ++-- frontend/app/package.json | 2 +- frontend/app/src/components/FooterComponent.vue | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/backend/app/core/config.py b/backend/app/core/config.py index 845ba8b13..7a3d65cc8 100644 --- a/backend/app/core/config.py +++ b/backend/app/core/config.py @@ -7,7 +7,7 @@ from cryptography.fernet import Fernet import core.logger as core_logger # Constant related to version -API_VERSION = "v0.15.5" +API_VERSION = "v0.15.6" LICENSE_NAME = "GNU Affero General Public License v3.0 or later" LICENSE_IDENTIFIER = "AGPL-3.0-or-later" LICENSE_URL = "https://spdx.org/licenses/AGPL-3.0-or-later.html" diff --git a/backend/pyproject.toml b/backend/pyproject.toml index 86f59d3c4..1476ccf20 100644 --- a/backend/pyproject.toml +++ b/backend/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "endurain" -version = "0.15.5" +version = "0.15.6" description = "Endurain API for the Endurain app" authors = ["João Vitória Silva <8648976+joaovitoriasilva@users.noreply.github.com>"] readme = "README.md" diff --git a/frontend/app/package-lock.json b/frontend/app/package-lock.json index b5bce3f9f..4c3ca7bc8 100644 --- a/frontend/app/package-lock.json +++ b/frontend/app/package-lock.json @@ -1,12 +1,12 @@ { "name": "endurain", - "version": "0.15.5", + "version": "0.15.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "endurain", - "version": "0.15.5", + "version": "0.15.6", "dependencies": { "@fortawesome/fontawesome-svg-core": "^6.7.1", "@fortawesome/free-brands-svg-icons": "^6.7.1", diff --git a/frontend/app/package.json b/frontend/app/package.json index b89a56297..c9511c145 100644 --- a/frontend/app/package.json +++ b/frontend/app/package.json @@ -1,6 +1,6 @@ { "name": "endurain", - "version": "0.15.5", + "version": "0.15.6", "private": true, "type": "module", "scripts": { diff --git a/frontend/app/src/components/FooterComponent.vue b/frontend/app/src/components/FooterComponent.vue index af317b2dd..2e3fbe5e4 100644 --- a/frontend/app/src/components/FooterComponent.vue +++ b/frontend/app/src/components/FooterComponent.vue @@ -23,7 +23,7 @@ - • v0.15.5 + • v0.15.6