From 057d9f8f4cb68e771d86e384108d524a672a11d3 Mon Sep 17 00:00:00 2001 From: guillaumehussong Date: Tue, 14 Jan 2025 08:31:57 -0600 Subject: [PATCH] Added spanish translation to the backoffice --- .DS_Store | Bin 0 -> 6148 bytes backend/src/components/MultimediaList.tsx | 2 +- backend/src/lang/bookings.ts | 3 + backend/src/lang/car-multimedia-filter.ts | 7 ++ backend/src/lang/car-range-filter.ts | 7 ++ backend/src/lang/car-rating-filter.ts | 7 ++ backend/src/lang/car-seats-filter.ts | 7 ++ backend/src/lang/car-specs.ts | 6 ++ backend/src/lang/cars.ts | 74 ++++++++++++++++++ backend/src/lang/change-password.ts | 10 +++ backend/src/lang/common.ts | 85 +++++++++++++++++++++ backend/src/lang/countries.ts | 8 ++ backend/src/lang/create-booking.ts | 3 + backend/src/lang/create-car.ts | 28 +++++++ backend/src/lang/create-country.ts | 6 ++ backend/src/lang/create-location.ts | 8 ++ backend/src/lang/create-supplier.ts | 6 ++ backend/src/lang/create-user.ts | 4 + backend/src/lang/header.ts | 15 ++++ backend/src/lang/locations.ts | 8 ++ backend/src/lang/master.ts | 6 ++ backend/src/lang/multimedia-list.ts | 10 ++- backend/src/lang/no-match.ts | 3 + backend/src/lang/notifications.ts | 11 +++ backend/src/lang/parking-spot-edit-list.ts | 3 + backend/src/lang/reset-password.ts | 7 ++ backend/src/lang/settings.ts | 5 ++ backend/src/lang/sign-in.ts | 8 ++ backend/src/lang/sign-up.ts | 7 ++ backend/src/lang/supplier-list.ts | 5 ++ backend/src/lang/suppliers.ts | 5 ++ backend/src/lang/unauthorized.ts | 3 + backend/src/lang/update-country.ts | 4 + backend/src/lang/update-location.ts | 4 + backend/src/lang/update-user.ts | 3 + backend/src/lang/user-list.ts | 6 ++ backend/src/lang/users.ts | 3 + 37 files changed, 384 insertions(+), 3 deletions(-) create mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a369948ed1c7e97b040190acb943b325a38f27b2 GIT binary patch literal 6148 zcmeHK%}T>S5T0$TO({YT3Oz1(E!ZAf3tmF4FJMFuDm5`dLu0n|#~w-{XMG``#OHBl zcLP>)@FZeqVE3DypWVy{*&hH9gGJZ@XaInNjZlzMAY?9dm25Df&~rqPLKrM(lOQRW z=r5Y++p7?O5BD&JPv5Ts^t=U=B%aON?RQZsS9W%*PSvS9x89>#dUJoim<{~tHH|Km zN`hSXgUdKtjvD)?DxLdr8clUV97Y&&a}}qdS`O4A4QD#nGY+Tb)JBcwYSrtvTe8#Z zu3K`|?{r)8xZ7Q?YtF&p(aHH}oIIuK#ZW1bbuD`qb9hDNOI6R_G)+|cfSx=nk7i^B zm;q*h8Q3lc>^b1nx2tTfmKk6Me!u|j4-y-pYcVsZw+`&+`b_=`AqndAmLQZCU5lAP z^q>fnifB@WePRfcj&^C|T#K1OlMX_!jPux)^T&(OtD{}&a1gFR?wJ8*V3UEe88+zr zKf_<9@R7fn!XsvY8Te-mh|16#4zMVDwtg#*&RU7>4jT!@Wu%~>zHte_0qrAA?KFN# aI>xycGlMh>*>yT1Uj#HE+%W^cz`zGgmrP3l literal 0 HcmV?d00001 diff --git a/backend/src/components/MultimediaList.tsx b/backend/src/components/MultimediaList.tsx index 1b82a3fab..47b805907 100644 --- a/backend/src/components/MultimediaList.tsx +++ b/backend/src/components/MultimediaList.tsx @@ -95,7 +95,7 @@ const MultimediaList = ({ }} /> )} - label={strings.TOUCHSCEEN} + label={strings.TOUCHSCREEN} /> diff --git a/backend/src/lang/bookings.ts b/backend/src/lang/bookings.ts index 0cf712dd3..f436466c9 100644 --- a/backend/src/lang/bookings.ts +++ b/backend/src/lang/bookings.ts @@ -8,6 +8,9 @@ const strings = new LocalizedStrings({ en: { NEW_BOOKING: 'New Booking', }, + es: { + NEW_BOOKING: 'Nueva reserva', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/car-multimedia-filter.ts b/backend/src/lang/car-multimedia-filter.ts index bb60b1cc7..4f3377a01 100644 --- a/backend/src/lang/car-multimedia-filter.ts +++ b/backend/src/lang/car-multimedia-filter.ts @@ -16,6 +16,13 @@ const strings = new LocalizedStrings({ ANDROID_AUTO: 'Android Auto', APPLE_CAR_PLAY: 'Apple Car Play', }, + es: { + MULTIMEDIA: 'Multimedia', + TOUCHSCREEN: 'Pantalla táctil', + BLUETOOTH: 'Bluetooth', + ANDROID_AUTO: 'Android Auto', + APPLE_CAR_PLAY: 'Apple Car Play', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/car-range-filter.ts b/backend/src/lang/car-range-filter.ts index fc983c91e..d4168ca3d 100644 --- a/backend/src/lang/car-range-filter.ts +++ b/backend/src/lang/car-range-filter.ts @@ -16,6 +16,13 @@ const strings = new LocalizedStrings({ MAXI: 'Maxi', SCOOTER: 'Scooter', }, + es: { + RANGE: 'Gama', + MINI: 'Mini', + MIDI: 'Midi', + MAXI: 'Maxi', + SCOOTER: 'Scooter', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/car-rating-filter.ts b/backend/src/lang/car-rating-filter.ts index 4d46d2f93..b5202afa8 100644 --- a/backend/src/lang/car-rating-filter.ts +++ b/backend/src/lang/car-rating-filter.ts @@ -16,6 +16,13 @@ const strings = new LocalizedStrings({ RATING_3: '(3 and up)', RATING_4: '(4 and up)', }, + es: { + RATING: 'Clasificación', + RATING_1: '(1 y más)', + RATING_2: '(2 y más)', + RATING_3: '(3 y más)', + RATING_4: '(4 y más)', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/car-seats-filter.ts b/backend/src/lang/car-seats-filter.ts index 66b664da2..eff22d519 100644 --- a/backend/src/lang/car-seats-filter.ts +++ b/backend/src/lang/car-seats-filter.ts @@ -16,6 +16,13 @@ const strings = new LocalizedStrings({ FIVE: '5 seats', FIVE_PLUS: '5+ seats', }, + es: { + SEATS: 'Asientos', + TWO: '2 asientos', + FOUR: '4 asientos', + FIVE: '5 asientos', + FIVE_PLUS: '5+ asientos', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/car-specs.ts b/backend/src/lang/car-specs.ts index 6ac8fcf67..7728b3184 100644 --- a/backend/src/lang/car-specs.ts +++ b/backend/src/lang/car-specs.ts @@ -14,6 +14,12 @@ const strings = new LocalizedStrings({ MORE_THAN_FOOR_DOORS: '4+ doors', MORE_THAN_FIVE_SEATS: '5+ seats', }, + es: { + CAR_SPECS: 'Especificaciones del coche', + AIRCON: 'Aire acondicionado', + MORE_THAN_FOOR_DOORS: '4+ puertas', + MORE_THAN_FIVE_SEATS: '5+ asientos', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/cars.ts b/backend/src/lang/cars.ts index 733583645..637891f0d 100644 --- a/backend/src/lang/cars.ts +++ b/backend/src/lang/cars.ts @@ -156,6 +156,80 @@ const strings = new LocalizedStrings({ TRIPS: 'trips', CO2: 'CO2 effect', }, + es: { + NEW_CAR: 'Nuevo coche', + DELETE_CAR: '¿Estás seguro de que quieres eliminar este coche?', + CAR_CURRENCY: `${commonStrings.CURRENCY}/día`, + FUEL_POLICY: 'Política de combustible', + DIESEL: 'Diésel', + GASOLINE: 'Gasolina', + ELECTRIC: 'Eléctrico', + HYBRID: 'Híbrido', + PLUG_IN_HYBRID: 'Híbrido enchufable', + UNKNOWN: 'No especificado', + DIESEL_SHORT: 'D', + GASOLINE_SHORT: 'G', + ELECTRIC_SHORT: 'ELEC', + HYBRID_SHORT: 'H', + PLUG_IN_HYBRID_SHORT: 'HE', + GEARBOX_MANUAL: 'Manual', + GEARBOX_AUTOMATIC: 'Automático', + GEARBOX_MANUAL_SHORT: 'M', + GEARBOX_AUTOMATIC_SHORT: 'A', + FUEL_POLICY_LIKE_FOR_LIKE: 'Igual que', + FUEL_POLICY_FREE_TANK: 'Tanque gratis', + DIESEL_TOOLTIP: 'Este coche tiene un motor diésel', + GASOLINE_TOOLTIP: 'Este coche tiene un motor de gasolina', + ELECTRIC_TOOLTIP: 'Este coche es eléctrico', + HYBRID_TOOLTIP: 'Este coche es híbrido', + PLUG_IN_HYBRID_TOOLTIP: 'Este coche es híbrido enchufable', + GEARBOX_MANUAL_TOOLTIP: 'Este coche tiene una caja de cambios manual', + GEARBOX_AUTOMATIC_TOOLTIP: 'Este coche tiene una caja de cambios automática', + SEATS_TOOLTIP_1: 'Este coche tiene ', + SEATS_TOOLTIP_2: 'asientos', + DOORS_TOOLTIP_1: 'Este coche tiene ', + DOORS_TOOLTIP_2: 'puertas', + AIRCON_TOOLTIP: 'Este coche tiene aire acondicionado', + FUEL_POLICY_LIKE_FOR_LIKE_TOOLTIP: 'Este coche se suministra con combustible y debe devolverse con la misma cantidad de combustible.', + FUEL_POLICY_FREE_TANK_TOOLTIP: 'El precio incluye un tanque lleno de combustible.', + MILEAGE: 'Kilometraje', + MILEAGE_UNIT: 'KM/día', + UNLIMITED: 'Ilimitado', + LIMITED: 'Limitado', + CANCELLATION: 'Cancelación', + CANCELLATION_TOOLTIP: 'La reserva se puede cancelar antes de la fecha de inicio del alquiler.', + AMENDMENTS: 'Modificaciones', + AMENDMENTS_TOOLTIP: 'La reserva se puede modificar antes de la fecha de inicio del alquiler.', + THEFT_PROTECTION: 'Protección contra robo', + THEFT_PROTECTION_TOOLTIP: 'El alquiler puede incluir protección contra robo.', + COLLISION_DAMAGE_WAVER: 'Exención de daños por colisión', + COLLISION_DAMAGE_WAVER_TOOLTIP: 'El alquiler puede incluir una exención de daños por colisión.', + FULL_INSURANCE: 'Seguro completo', + FULL_INSURANCE_TOOLTIP: 'El alquiler puede incluir una exención de daños por colisión y protección contra robo del vehículo.', + ADDITIONAL_DRIVER: 'Conductor adicional', + INCLUDED: 'Incluido', + AVAILABLE: 'Disponible', + UNAVAILABLE: 'No disponible', + CAR_AVAILABLE: 'Disponible para alquiler', + CAR_AVAILABLE_TOOLTIP: 'Este coche está disponible para alquilar.', + CAR_UNAVAILABLE: 'No disponible para alquiler', + CAR_UNAVAILABLE_TOOLTIP: 'Este coche no está disponible para alquilar.', + VIEW_CAR: 'Ver este coche', + EMPTY_LIST: 'No hay coches.', + CANNOT_DELETE_CAR: 'Este coche no se puede eliminar porque está vinculado a reservas. Sin embargo, puede hacerlo no disponible para alquilar modificándolo.', + GEARBOX: 'Caja de cambios', + ENGINE: 'Motor', + DEPOSIT: 'Depósito', + LESS_THAN_VALUE_1: `Menos de ${isUS ? env.CURRENCY : ''}${env.DEPOSIT_FILTER_VALUE_1}${!isUS ? (` ${env.CURRENCY}`) : ''}`, + LESS_THAN_VALUE_2: `Menos de ${isUS ? env.CURRENCY : ''}${env.DEPOSIT_FILTER_VALUE_2}${!isUS ? (` ${env.CURRENCY}`) : ''}`, + LESS_THAN_VALUE_3: `Menos de ${isUS ? env.CURRENCY : ''}${env.DEPOSIT_FILTER_VALUE_3}${!isUS ? (` ${env.CURRENCY}`) : ''}`, + AVAILABILITY: 'Disponibilidad', + PRICE_DAYS_PART_1: 'Precio para', + PRICE_DAYS_PART_2: 'día', + PRICE_PER_DAY: 'Precio por día:', + TRIPS: 'alquileres', + CO2: 'Efecto CO2', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/change-password.ts b/backend/src/lang/change-password.ts index be26ba1cc..c4f37f3b4 100644 --- a/backend/src/lang/change-password.ts +++ b/backend/src/lang/change-password.ts @@ -22,6 +22,16 @@ const strings = new LocalizedStrings({ PASSWORD_UPDATE_ERROR: 'An error occurred while updating password.', PASSWORD_UPDATE: 'Password changed successfully.', }, + es: { + CHANGE_PASSWORD_HEADING: 'Modificación de contraseña', + CURRENT_PASSWORD: 'Contraseña actual', + YOUR_PASSWORD: 'Tu contraseña', + CURRENT_PASSWORD_ERROR: 'Contraseña incorrecta', + NEW_PASSWORD: 'Nueva contraseña', + NEW_PASSWORD_ERROR: 'Por favor elija una nueva contraseña', + PASSWORD_UPDATE_ERROR: 'Se produjo un error al actualizar la contraseña.', + PASSWORD_UPDATE: 'Contraseña cambiada con éxito.', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/common.ts b/backend/src/lang/common.ts index f5833e9e6..610958b27 100644 --- a/backend/src/lang/common.ts +++ b/backend/src/lang/common.ts @@ -173,6 +173,91 @@ const strings = new LocalizedStrings({ DRIVER_LICENSE: "Driver's License", UPLOAD_DRIVER_LICENSE: "Upload driver's license...", }, + es: { + GENERIC_ERROR: 'Se ha producido un error no controlado.', + CHANGE_LANGUAGE_ERROR: 'Se ha producido un error al cambiar el idioma.', + UPDATED: 'Cambios realizados con éxito.', + GO_TO_HOME: 'Ir a la página de inicio', + FULL_NAME: 'Nombre completo', + EMAIL: 'Correo electrónico', + PASSWORD: 'Contraseña', + EMAIL_ALREADY_REGISTERED: 'Esta dirección de correo electrónico ya está registrada.', + CONFIRM_PASSWORD: 'Confirmar contraseña', + PHONE: 'Teléfono', + LOCATION: 'Ubicación', + BIO: 'Biografía', + IMAGE_REQUIRED: 'Por favor, añada una imagen.', + LOADING: 'Cargando...', + PLEASE_WAIT: 'Por favor, espere...', + SEARCH: 'Buscar', + SEARCH_PLACEHOLDER: 'Buscar...', + CONFIRM_TITLE: 'Confirmación', + PASSWORD_ERROR: 'La contraseña debe tener al menos 6 caracteres.', + PASSWORDS_DONT_MATCH: 'Las contraseñas no coinciden.', + CREATE: 'Crear', + UPDATE: 'Editar', + DELETE: 'Eliminar', + SAVE: 'Guardar', + CANCEL: 'Cancelar', + RESET_PASSWORD: 'Cambiar contraseña', + CURRENCY: env.CURRENCY, + DAILY: '/día', + DELETE_AVATAR_CONFIRM: '¿Está seguro de que desea eliminar la imagen?', + UPLOAD_IMAGE: 'Subir imagen', + DELETE_IMAGE: 'Eliminar imagen', + UNCHECK_ALL: 'Desmarcar todo', + CHECK_ALL: 'Marcar todo', + CLOSE: 'Cerrar', + BOOKING_STATUS_VOID: 'Vacío', + BOOKING_STATUS_PENDING: 'Pendiente', + BOOKING_STATUS_DEPOSIT: 'Depósito', + BOOKING_STATUS_PAID: 'Pagado', + BOOKING_STATUS_RESERVED: 'Reservado', + BOOKING_STATUS_CANCELLED: 'Cancelado', + FROM: 'Desde', + TO: 'Hasta', + OPTIONAL: 'Parámetros opcionales', + AND: 'y', + RECORD_TYPE_ADMIN: 'Administrador', + RECORD_TYPE_SUPPLIER: 'Proveedor', + RECORD_TYPE_USER: 'Conductor', + TYPE: 'Tipo', + CONFIRM: 'Confirmar', + USER: 'Usuario', + INFO: 'Información', + USER_TYPE_REQUIRED: 'Por favor, rellene el campo: Tipo', + FIX_ERRORS: 'Por favor, corrija los errores.', + SEND_MESSAGE: 'Enviar un mensaje', + VERIFIED: 'Cuenta verificada', + CAR: 'coche', + CARS: 'coches', + RESEND_ACTIVATION_LINK: 'Reenviar enlace de activación de cuenta', + ACTIVATION_EMAIL_SENT: 'Correo electrónico de activación enviado.', + EMAIL_NOT_VALID: 'Dirección de correo electrónico no válida', + PHONE_NOT_VALID: 'Número de teléfono no válido', + BIRTH_DATE_NOT_VALID: `El conductor debe tener al menos ${env.MINIMUM_AGE} años.`, + FORM_ERROR: 'Por favor, corrija los errores.', + ALL: 'Todos', + SUPPLIER: 'Proveedor', + STATUS: 'Estado', + PICK_UP_LOCATION: 'Lugar de recogida', + DROP_OFF_LOCATION: 'Lugar de entrega', + OPTIONS: 'Opciones', + OF: 'de', + BIRTH_DATE: 'Fecha de nacimiento', + BIRTH_DATE_NOT_VALID_PART1: 'El conductor debe tener al menos', + BIRTH_DATE_NOT_VALID_PART2: 'años.', + PAY_LATER: 'Autorizar pago posterior', + ANY: 'Cualquiera', + NAME: 'Nombre', + LONGITUDE: 'Longitud', + LATITUDE: 'Latitud', + LICENSE_REQUIRED: 'Se requiere licencia de conducir', + LICENSE: 'Licencia de conducir', + MIN_RENTAL_DAYS: 'Días mínimos de alquiler', + DRIVER_LICENSE: 'Licencia de conducir', + UPLOAD_DRIVER_LICENSE: 'Subir licencia de conducir...', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/countries.ts b/backend/src/lang/countries.ts index 28ddea2f0..70d3bd1c4 100644 --- a/backend/src/lang/countries.ts +++ b/backend/src/lang/countries.ts @@ -18,6 +18,14 @@ const strings = new LocalizedStrings({ COUNTRY: 'country', COUNTRIES: 'countries', }, + es: { + NEW_COUNTRY: 'Nuevo país', + DELETE_COUNTRY: '¿Estás seguro de que quieres eliminar este país?', + CANNOT_DELETE_COUNTRY: 'Este país no puede ser eliminado porque está relacionado con ubicaciones.', + EMPTY_LIST: 'No hay países.', + COUNTRY: 'país', + COUNTRIES: 'países', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/create-booking.ts b/backend/src/lang/create-booking.ts index 048011868..4d3dcbb63 100644 --- a/backend/src/lang/create-booking.ts +++ b/backend/src/lang/create-booking.ts @@ -8,6 +8,9 @@ const strings = new LocalizedStrings({ en: { NEW_BOOKING_HEADING: 'New booking', }, + es: { + NEW_BOOKING_HEADING: 'Nueva reserva', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/create-car.ts b/backend/src/lang/create-car.ts index 8b0a4f76e..fa059dbc8 100644 --- a/backend/src/lang/create-car.ts +++ b/backend/src/lang/create-car.ts @@ -59,6 +59,34 @@ const strings = new LocalizedStrings({ RATING: 'Rating', CO2: 'CO2 (g/km)', }, + es: { + NEW_CAR_HEADING: 'Nuevo coche', + NAME: 'Nombre', + CAR_IMAGE_SIZE_ERROR: `La imagen debe tener el formato ${env.CAR_IMAGE_WIDTH}x${env.CAR_IMAGE_HEIGHT}`, + RECOMMENDED_IMAGE_SIZE: `Tamaño de imagen recomendado: ${env.CAR_IMAGE_WIDTH}x${env.CAR_IMAGE_HEIGHT}`, + SUPPLIER: 'Proveedor', + LOCATIONS: 'Lugares de recogida', + AVAILABLE: 'Disponible para alquiler', + CAR_TYPE: 'Motor', + DAILY_PRICE: 'Precio diario', + DISCOUNTED_DAILY_PRICE: 'Precio diario con descuento', + BI_WEEKLY_PRICE: 'Precio quincenal (3 días)', + DISCOUNTED_BI_WEEKLY_PRICE: 'Precio quincenal con descuento', + WEEKLY_PRICE: 'Precio semanal', + DISCOUNTED_WEEKLY_PRICE: 'Precio semanal con descuento', + MONTHLY_PRICE: 'Precio mensual', + DISCOUNTED_MONThLY_PRICE: 'Precio mensual con descuento', + SEATS: 'Asientos', + DOORS: 'Puertas', + GEARBOX: 'Caja de cambios', + AIRCON: 'Aire acondicionado', + MINIMUM_AGE: 'Edad mínima', + MINIMUM_AGE_NOT_VALID: `La edad mínima debe ser mayor o igual a ${env.MINIMUM_AGE} años.`, + CAR_RANGE: 'Gama', + MULTIMEDIA: 'Multimedia', + RATING: 'Calificación', + CO2: 'CO2 (g/km)', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/create-country.ts b/backend/src/lang/create-country.ts index 2b44e7e08..9cf1c5637 100644 --- a/backend/src/lang/create-country.ts +++ b/backend/src/lang/create-country.ts @@ -14,6 +14,12 @@ const strings = new LocalizedStrings({ INVALID_COUNTRY: 'This country already exists.', COUNTRY_CREATED: 'Country created successfully.', }, + es: { + NEW_COUNTRY_HEADING: 'Nuevo país', + COUNTRY_NAME: 'País', + INVALID_COUNTRY: 'Este país ya existe.', + COUNTRY_CREATED: 'País creado con éxito.', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/create-location.ts b/backend/src/lang/create-location.ts index 159c7fcda..e22613090 100644 --- a/backend/src/lang/create-location.ts +++ b/backend/src/lang/create-location.ts @@ -18,6 +18,14 @@ const strings = new LocalizedStrings({ COUNTRY: 'Country', PARKING_SPOTS: 'Parking spots', }, + es: { + NEW_LOCATION_HEADING: 'Nuevo lugar', + LOCATION_NAME: 'Lugar', + INVALID_LOCATION: 'Este lugar ya existe.', + LOCATION_CREATED: 'Lugar creado con éxito.', + COUNTRY: 'País', + PARKING_SPOTS: 'Plazas de aparcamiento', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/create-supplier.ts b/backend/src/lang/create-supplier.ts index d3132008b..7b7935864 100644 --- a/backend/src/lang/create-supplier.ts +++ b/backend/src/lang/create-supplier.ts @@ -15,6 +15,12 @@ const strings = new LocalizedStrings({ SUPPLIER_IMAGE_SIZE_ERROR: `The image must be in the format ${env.SUPPLIER_IMAGE_WIDTH}x${env.SUPPLIER_IMAGE_HEIGHT}`, RECOMMENDED_IMAGE_SIZE: `Recommended image size: ${env.SUPPLIER_IMAGE_WIDTH}x${env.SUPPLIER_IMAGE_HEIGHT}`, }, + es: { + CREATE_SUPPLIER_HEADING: 'Nuevo proveedor', + INVALID_SUPPLIER_NAME: 'Este proveedor ya existe.', + SUPPLIER_IMAGE_SIZE_ERROR: `La imagen debe tener el formato ${env.SUPPLIER_IMAGE_WIDTH}x${env.SUPPLIER_IMAGE_HEIGHT}`, + RECOMMENDED_IMAGE_SIZE: `Tamaño de imagen recomendado: ${env.SUPPLIER_IMAGE_WIDTH}x${env.SUPPLIER_IMAGE_HEIGHT}`, + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/create-user.ts b/backend/src/lang/create-user.ts index f40d03dc9..4553498fa 100644 --- a/backend/src/lang/create-user.ts +++ b/backend/src/lang/create-user.ts @@ -10,6 +10,10 @@ const strings = new LocalizedStrings({ CREATE_USER_HEADING: 'New user', BIRTH_DATE: 'Birth date', }, + es: { + CREATE_USER_HEADING: 'Nuevo usuario', + BIRTH_DATE: 'Fecha de nacimiento', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/header.ts b/backend/src/lang/header.ts index 2fd10282e..a78fea5a6 100644 --- a/backend/src/lang/header.ts +++ b/backend/src/lang/header.ts @@ -32,6 +32,21 @@ const strings = new LocalizedStrings({ SIGN_OUT: 'Sign out', COUNTRIES: 'Countries', }, + es: { + DASHBOARD: 'Panel de control', + HOME: 'Inicio', + COMPANIES: 'Proveedores', + LOCATIONS: 'Ubicaciones', + CARS: 'Coches', + USERS: 'Usuarios', + ABOUT: 'Acerca de', + TOS: 'Términos de servicio', + CONTACT: 'Contacto', + LANGUAGE: 'Idioma', + SETTINGS: 'Configuración', + SIGN_OUT: 'Cerrar sesión', + COUNTRIES: 'Países', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/locations.ts b/backend/src/lang/locations.ts index f0cb27c2a..eaa62d11a 100644 --- a/backend/src/lang/locations.ts +++ b/backend/src/lang/locations.ts @@ -18,6 +18,14 @@ const strings = new LocalizedStrings({ LOCATION: 'location', LOCATIONS: 'locations', }, + es: { + NEW_LOCATION: 'Nuevo lugar', + DELETE_LOCATION: '¿Estás seguro de que quieres eliminar este lugar?', + CANNOT_DELETE_LOCATION: 'Este lugar no puede ser eliminado porque está relacionado con coches.', + EMPTY_LIST: 'No hay lugares.', + LOCATION: 'lugar', + LOCATIONS: 'lugares', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/master.ts b/backend/src/lang/master.ts index b59d67a5d..95578ae5d 100644 --- a/backend/src/lang/master.ts +++ b/backend/src/lang/master.ts @@ -14,6 +14,12 @@ const strings = new LocalizedStrings({ VALIDATION_EMAIL_SENT: 'Validation email sent.', VALIDATION_EMAIL_ERROR: 'An error occurred while sending validation email.', }, + es: { + VALIDATE_EMAIL: "Se ha enviado un correo electrónico de validación a su dirección de correo electrónico. Por favor, revise su bandeja de entrada y valide su cuenta haciendo clic en el enlace del correo electrónico. Expirará después de un día. Si no recibió el correo electrónico de validación, haga clic en reenviar.", + RESEND: 'Reenviar', + VALIDATION_EMAIL_SENT: 'Correo electrónico de validación enviado.', + VALIDATION_EMAIL_ERROR: 'Se produjo un error al enviar el correo electrónico de validación.', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/multimedia-list.ts b/backend/src/lang/multimedia-list.ts index 4c81d066e..4840bf307 100644 --- a/backend/src/lang/multimedia-list.ts +++ b/backend/src/lang/multimedia-list.ts @@ -6,13 +6,19 @@ const strings = new LocalizedStrings({ ANDROID_AUTO: 'Android Auto', APPLE_CAR_PLAY: 'Apple Car Play', BLUETOOTH: 'Bluetooth', - TOUCHSCEEN: 'Écran tactile', + TOUCHSCREEN: 'Écran tactile', }, en: { ANDROID_AUTO: 'Android Auto', APPLE_CAR_PLAY: 'Apple Car Play', BLUETOOTH: 'Bluetooth', - TOUCHSCEEN: 'Touchscreen', + TOUCHSCREEN: 'Touchscreen', + }, + es: { + ANDROID_AUTO: 'Android Auto', + APPLE_CAR_PLAY: 'Apple Car Play', + BLUETOOTH: 'Bluetooth', + TOUCHSCREEN: 'Pantalla táctil', }, }) diff --git a/backend/src/lang/no-match.ts b/backend/src/lang/no-match.ts index d4dab1b7f..85d212854 100644 --- a/backend/src/lang/no-match.ts +++ b/backend/src/lang/no-match.ts @@ -8,6 +8,9 @@ const strings = new LocalizedStrings({ en: { NO_MATCH: 'Nothing to see here!', }, + es: { + NO_MATCH: '¡Nada que ver aquí!', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/notifications.ts b/backend/src/lang/notifications.ts index 2c967b2e5..6902a8c84 100644 --- a/backend/src/lang/notifications.ts +++ b/backend/src/lang/notifications.ts @@ -24,6 +24,17 @@ const strings = new LocalizedStrings({ DELETE_NOTIFICATION: 'Are you sure you want to delete this notification?', DELETE_NOTIFICATIONS: 'Are you sure you want to delete these notifications?', }, + es: { + EMPTY_LIST: 'No hay notificaciones', + VIEW: 'Ver', + MARK_AS_READ: 'Marcar como leído', + MARK_AS_UNREAD: 'Marcar como no leído', + MARK_ALL_AS_READ: 'Marcar todo como leído', + MARK_ALL_AS_UNREAD: 'Marcar todo como no leído', + DELETE_ALL: 'Eliminar todo', + DELETE_NOTIFICATION: '¿Estás seguro de que quieres eliminar esta notificación?', + DELETE_NOTIFICATIONS: '¿Estás seguro de que quieres eliminar estas notificaciones?', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/parking-spot-edit-list.ts b/backend/src/lang/parking-spot-edit-list.ts index f51beb2f8..2946eb924 100644 --- a/backend/src/lang/parking-spot-edit-list.ts +++ b/backend/src/lang/parking-spot-edit-list.ts @@ -8,6 +8,9 @@ const strings = new LocalizedStrings({ en: { NEW_PARKING_SPOT: 'New parking spot', }, + es: { + NEW_PARKING_SPOT: 'Nueva plaza de aparcamiento', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/reset-password.ts b/backend/src/lang/reset-password.ts index 9fe9303b0..771163d5b 100644 --- a/backend/src/lang/reset-password.ts +++ b/backend/src/lang/reset-password.ts @@ -16,6 +16,13 @@ const strings = new LocalizedStrings({ RESET: 'Reset', EMAIL_SENT: 'Password reset email sent.', }, + es: { + RESET_PASSWORD_HEADING: 'Restablecimiento de contraseña', + RESET_PASSWORD: 'Por favor ingrese su dirección de correo electrónico para que podamos enviarle un correo electrónico para restablecer su contraseña.', + EMAIL_ERROR: 'Dirección de correo electrónico no registrada', + RESET: 'Restablecer', + EMAIL_SENT: 'Correo electrónico de restablecimiento de contraseña enviado.', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/settings.ts b/backend/src/lang/settings.ts index 3f2b041f7..091840ab8 100644 --- a/backend/src/lang/settings.ts +++ b/backend/src/lang/settings.ts @@ -12,6 +12,11 @@ const strings = new LocalizedStrings({ NETWORK_SETTINGS: 'Network settings', SETTINGS_EMAIL_NOTIFICATIONS: 'Enable email notifications', }, + es: { + SETTINGS_UPDATED: 'Configuración actualizada correctamente.', + NETWORK_SETTINGS: 'Configuración de red', + SETTINGS_EMAIL_NOTIFICATIONS: 'Habilitar notificaciones por correo electrónico', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/sign-in.ts b/backend/src/lang/sign-in.ts index 303f84a18..783dbec49 100644 --- a/backend/src/lang/sign-in.ts +++ b/backend/src/lang/sign-in.ts @@ -18,6 +18,14 @@ const strings = new LocalizedStrings({ RESET_PASSWORD: 'Forgot password?', STAY_CONNECTED: 'Stay connected', }, + es: { + SIGN_IN_HEADING: 'Iniciar sesión', + SIGN_IN: 'Iniciar sesión', + ERROR_IN_SIGN_IN: 'Correo electrónico o contraseña incorrectos.', + IS_BLACKLISTED: 'Tu cuenta está suspendida.', + RESET_PASSWORD: '¿Olvidaste tu contraseña?', + STAY_CONNECTED: 'Mantenerse conectado', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/sign-up.ts b/backend/src/lang/sign-up.ts index e6fd79279..991381290 100644 --- a/backend/src/lang/sign-up.ts +++ b/backend/src/lang/sign-up.ts @@ -16,6 +16,13 @@ const strings = new LocalizedStrings({ RECAPTCHA_ERROR: 'Fill out the captcha to continue.', SIGN_UP_ERROR: 'An error occurred during sign up.', }, + es: { + SIGN_UP_HEADING: 'Registrarse', + TOS_SIGN_UP: 'He leído y acepto los Términos de uso.', + SIGN_UP: 'Registrarse', + RECAPTCHA_ERROR: 'Complete el captcha para continuar.', + SIGN_UP_ERROR: 'Se produjo un error durante el registro.', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/supplier-list.ts b/backend/src/lang/supplier-list.ts index 63f78848e..b79fd6c53 100644 --- a/backend/src/lang/supplier-list.ts +++ b/backend/src/lang/supplier-list.ts @@ -12,6 +12,11 @@ const strings = new LocalizedStrings({ VIEW_SUPPLIER: 'View supplier profile', DELETE_SUPPLIER: 'Are you sure you want to delete this supplier and all its data?', }, + es: { + EMPTY_LIST: 'No hay proveedores.', + VIEW_SUPPLIER: 'Ver perfil del proveedor', + DELETE_SUPPLIER: '¿Estás seguro de que quieres eliminar este proveedor y todos sus datos?', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/suppliers.ts b/backend/src/lang/suppliers.ts index 87673f681..ea0517f78 100644 --- a/backend/src/lang/suppliers.ts +++ b/backend/src/lang/suppliers.ts @@ -12,6 +12,11 @@ const strings = new LocalizedStrings({ SUPPLIER: 'supplier', SUPPLIERS: 'suppliers', }, + es: { + NEW_SUPPLIER: 'Nuevo proveedor', + SUPPLIER: 'proveedor', + SUPPLIERS: 'proveedores', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/unauthorized.ts b/backend/src/lang/unauthorized.ts index 3b8f73a44..c81236314 100644 --- a/backend/src/lang/unauthorized.ts +++ b/backend/src/lang/unauthorized.ts @@ -8,6 +8,9 @@ const strings = new LocalizedStrings({ en: { UNAUTHORIZED: 'Unauthorized access', }, + es: { + UNAUTHORIZED: 'Acceso no autorizado', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/update-country.ts b/backend/src/lang/update-country.ts index c82b62b8b..a33820766 100644 --- a/backend/src/lang/update-country.ts +++ b/backend/src/lang/update-country.ts @@ -10,6 +10,10 @@ const strings = new LocalizedStrings({ UPDATE_COUNTRY: 'Country update', COUNTRY_UPDATED: 'Country updated successfully.', }, + es: { + UPDATE_COUNTRY: 'Actualización del país', + COUNTRY_UPDATED: 'País actualizado correctamente.', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/update-location.ts b/backend/src/lang/update-location.ts index a915bfec0..5ca49edc2 100644 --- a/backend/src/lang/update-location.ts +++ b/backend/src/lang/update-location.ts @@ -10,6 +10,10 @@ const strings = new LocalizedStrings({ UPDATE_LOCATION: 'Location update', LOCATION_UPDATED: 'Location updated successfully.', }, + es: { + UPDATE_LOCATION: 'Actualización del lugar', + LOCATION_UPDATED: 'Lugar actualizado correctamente.', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/update-user.ts b/backend/src/lang/update-user.ts index 3fd9e475c..f882343ad 100644 --- a/backend/src/lang/update-user.ts +++ b/backend/src/lang/update-user.ts @@ -8,6 +8,9 @@ const strings = new LocalizedStrings({ en: { UPDATE_USER_HEADING: 'User update', }, + es: { + UPDATE_USER_HEADING: 'Actualización del usuario', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/user-list.ts b/backend/src/lang/user-list.ts index ddf862732..4bd75a6b7 100644 --- a/backend/src/lang/user-list.ts +++ b/backend/src/lang/user-list.ts @@ -14,6 +14,12 @@ const strings = new LocalizedStrings({ DELETE_SELECTION: 'Delete selectied users', BLACKLIST: 'Add to the blacklist', }, + es: { + DELETE_USER: '¿Estás seguro de que quieres eliminar a este usuario y todos sus datos?', + DELETE_USERS: '¿Estás seguro de que quieres eliminar a los usuarios seleccionados y todos sus datos?', + DELETE_SELECTION: 'Eliminar los usuarios seleccionados', + BLACKLIST: 'Añadir a la lista negra', + }, }) langHelper.setLanguage(strings) diff --git a/backend/src/lang/users.ts b/backend/src/lang/users.ts index 5e944371a..10133cd82 100644 --- a/backend/src/lang/users.ts +++ b/backend/src/lang/users.ts @@ -8,6 +8,9 @@ const strings = new LocalizedStrings({ en: { NEW_USER: 'New user', }, + es: { + NEW_USER: 'Nuevo usuario', + }, }) langHelper.setLanguage(strings)