diff --git a/packages/shared/src/i18n/index.ts b/packages/shared/src/i18n/index.ts index 5170c93..dcc824c 100644 --- a/packages/shared/src/i18n/index.ts +++ b/packages/shared/src/i18n/index.ts @@ -9,6 +9,7 @@ import ptTranslations from './locales/pt.json' with {type: 'json'}; import bgTranslations from './locales/bg.json' with {type: 'json'}; import csTranslations from './locales/cs.json' with {type: 'json'}; import plTranslations from './locales/pl.json' with {type: 'json'}; +import esTranslations from './locales/es.json' with {type: 'json'}; export { SUPPORTED_LANGUAGES, @@ -43,6 +44,7 @@ const translationsMap: Record = { bg: bgTranslations, cs: csTranslations, pl: plTranslations, + es: esTranslations, }; // In-memory cache for loaded translations diff --git a/packages/shared/src/i18n/languages.ts b/packages/shared/src/i18n/languages.ts index 3fa4a13..07294ab 100644 --- a/packages/shared/src/i18n/languages.ts +++ b/packages/shared/src/i18n/languages.ts @@ -15,6 +15,7 @@ export const SUPPORTED_LANGUAGES: Language[] = [ {code: 'bg', name: 'Bulgarian', nativeName: 'Български', flag: '🇧🇬'}, {code: 'cs', name: 'Czech', nativeName: 'Čeština', flag: '🇨🇿'}, {code: 'pl', name: 'Polish', nativeName: 'Polski', flag: '🇵🇱'}, + {code: 'es', name: 'Spanish (Spain)', nativeName: 'Español (España)', flag: '🇪🇸'}, ]; export const DEFAULT_LANGUAGE = 'en'; diff --git a/packages/shared/src/i18n/locales/es.json b/packages/shared/src/i18n/locales/es.json new file mode 100644 index 0000000..75e45ba --- /dev/null +++ b/packages/shared/src/i18n/locales/es.json @@ -0,0 +1,45 @@ +{ + "pages": { + "unsubscribe": { + "title": "Cancelar suscripción", + "description": "Lamentamos que te vayas. ¿Estás seguro de que quieres cancelar la suscripción de {email} para dejar de recibir correos electrónicos?", + "button": "Cancelar suscripción", + "buttonLoading": "Cancelando suscripción...", + "managePreferences": "Gestionar preferencias en su lugar", + "successTitle": "Suscripción cancelada", + "successDescription": "Se ha cancelado la suscripción de {email}. No recibirás más correos electrónicos de nuestra parte.", + "changedMind": "¿Has cambiado de opinión?", + "subscribeAgain": "Suscribirse de nuevo" + }, + "subscribe": { + "title": "Suscribirse a las novedades", + "description": "¿Te gustaría suscribir {email} para recibir correos electrónicos?", + "button": "Suscribirse", + "buttonLoading": "Suscribiendo...", + "successTitle": "¡Suscripción completada!", + "successDescription": "{email} está ahora suscrito para recibir correos electrónicos de nuestra parte." + }, + "manage": { + "title": "Gestionar preferencias", + "description": "Gestiona las preferencias de correo electrónico de {email}", + "subscriptionLabel": "Suscripción de correo electrónico", + "subscribedStatus": "Actualmente estás suscrito para recibir correos electrónicos", + "unsubscribedStatus": "Actualmente tienes cancelada la suscripción a los correos electrónicos", + "subscribedSuccess": "¡Suscripción realizada con éxito!", + "unsubscribedSuccess": "¡Suscripción cancelada con éxito!", + "unsubscribeCompletely": "Cancelar suscripción completamente", + "subscribeToEmails": "Suscribirse a los correos electrónicos", + "disclaimer": "Esta página te permite gestionar tus preferencias de correo electrónico. El estado de tu suscripción se actualiza en tiempo real." + }, + "common": { + "loading": "Cargando...", + "error": "Error" + } + }, + "email": { + "footer": { + "unsubscribeText": "Has recibido este correo electrónico porque aceptaste recibir correos electrónicos de {projectName}. Si ya no deseas recibir correos electrónicos como este, por favor", + "updatePreferences": "actualiza tus preferencias" + } + } +}