diff --git a/src/activities-app/views/SettingsPage.vue b/src/activities-app/views/SettingsPage.vue
index 007264c..2a4ad83 100644
--- a/src/activities-app/views/SettingsPage.vue
+++ b/src/activities-app/views/SettingsPage.vue
@@ -11,6 +11,12 @@ import { Sun, Moon, LogIn, LogOut } from 'lucide-vue-next'
const { theme, setTheme } = useTheme()
const { locale } = useI18n()
+const languages: { code: AvailableLocale; label: string }[] = [
+ { code: 'fr', label: 'Français' },
+ { code: 'en', label: 'English' },
+ { code: 'es', label: 'Español' },
+]
+
const isAuthenticated = computed(() => auth.isAuthenticated.value)
const userPubkey = computed(() => auth.currentUser.value?.pubkey)
@@ -75,13 +81,13 @@ async function handleLogout() {
Language
diff --git a/src/i18n/locales/es.ts b/src/i18n/locales/es.ts
index d0fa65d..4899153 100644
--- a/src/i18n/locales/es.ts
+++ b/src/i18n/locales/es.ts
@@ -30,6 +30,67 @@ const messages: LocaleMessages = {
de: 'Alemán',
zh: 'Chino'
},
+ activities: {
+ title: 'Actividades',
+ createNew: 'Crear actividad',
+ noActivities: 'No se encontraron actividades',
+ filters: {
+ all: 'Todas',
+ today: 'Hoy',
+ tomorrow: 'Mañana',
+ thisWeek: 'Esta semana',
+ thisMonth: 'Este mes',
+ },
+ categories: {
+ concert: 'Concierto',
+ workshop: 'Taller',
+ market: 'Mercado',
+ festival: 'Festival',
+ exhibition: 'Exposición',
+ sport: 'Deporte',
+ theater: 'Teatro',
+ cinema: 'Cine',
+ party: 'Fiesta',
+ talk: 'Charla',
+ conference: 'Conferencia',
+ meetup: 'Encuentro',
+ food: 'Gastronomía',
+ outdoor: 'Al aire libre',
+ kids: 'Niños',
+ wellness: 'Bienestar',
+ technology: 'Tecnología',
+ art: 'Arte',
+ music: 'Música',
+ dance: 'Danza',
+ literature: 'Literatura',
+ comedy: 'Comedia',
+ charity: 'Solidario',
+ tradition: 'Tradición',
+ other: 'Otro',
+ },
+ detail: {
+ getTicket: 'Obtener boleto',
+ going: 'Voy',
+ maybe: 'Tal vez',
+ notGoing: 'No voy',
+ contactOrganizer: 'Contactar organizador',
+ organizer: 'Organizador',
+ location: 'Ubicación',
+ when: 'Cuándo',
+ tickets: 'Boletos',
+ ticketsAvailable: '{count} boletos disponibles',
+ soldOut: 'Agotado',
+ free: 'Gratis',
+ },
+ tickets: {
+ myTickets: 'Mis boletos',
+ scanTicket: 'Escanear boleto',
+ noTickets: 'Aún no tienes boletos',
+ paid: 'Pagado',
+ pending: 'Pendiente',
+ registered: 'Registrado',
+ },
+ },
dateTimeFormats: {
short: {
year: 'numeric',