From 50999f2af342da39eaf97f91ce48187f729bda9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pedro=20Sconetto?= Date: Mon, 2 Mar 2026 04:04:50 +0100 Subject: [PATCH] chore(locales): add Spanish i18n translation (#381) * chore(locales): add Spanish i18n translation * chore(locales): rename spanish translation to es-es.ts * docs: add key for new spanish translation --- README.md | 3 +- src/i18n/locales/es-es.ts | 179 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 181 insertions(+), 1 deletion(-) create mode 100644 src/i18n/locales/es-es.ts diff --git a/README.md b/README.md index ef944838..91fc7f8f 100644 --- a/README.md +++ b/README.md @@ -410,10 +410,11 @@ Partial internationalization (for non-admin, user-facing text) provided for a ha - `tr-tr` - `vi-vn` - `zh-cn` +- `es-es` To add support for a new language, open a PR following instructions in [/src/i18n/index.ts](https://github.com/sambecker/exif-photo-blog/blob/main/src/i18n/index.ts), using [en-us.ts](https://github.com/sambecker/exif-photo-blog/blob/main/src/i18n/locales/en-us.ts) as reference. -Thank you ❤️ translators: [@sconetto](https://github.com/sconetto) (`pt-br`, `pt-pt`), [@brandnholl](https://github.com/brandnholl) (`id-id`), [@TongEc](https://github.com/TongEc) (`zh-cn`), [@xahidex](https://github.com/xahidex) (`bd-bn`, `hi-in`), [@mehmetabak](https://github.com/mehmetabak) (`tr-tr`), [@simondeeley](https://github.com/simondeeley) (`en-gb`), [@jasonquache](https://github.com/jasonquache) (`vi-vn`) +Thank you ❤️ translators: [@sconetto](https://github.com/sconetto) (`pt-br`, `pt-pt`, `es-es`), [@brandnholl](https://github.com/brandnholl) (`id-id`), [@TongEc](https://github.com/TongEc) (`zh-cn`), [@xahidex](https://github.com/xahidex) (`bd-bn`, `hi-in`), [@mehmetabak](https://github.com/mehmetabak) (`tr-tr`), [@simondeeley](https://github.com/simondeeley) (`en-gb`), [@jasonquache](https://github.com/jasonquache) (`vi-vn`) 📖  FAQ - diff --git a/src/i18n/locales/es-es.ts b/src/i18n/locales/es-es.ts new file mode 100644 index 00000000..e131dad9 --- /dev/null +++ b/src/i18n/locales/es-es.ts @@ -0,0 +1,179 @@ +import { I18N } from '..'; +export { es as default } from 'date-fns/locale/es'; + +export const TEXT: I18N = { + photo: { + photo: 'Foto', + photoPlural: 'Fotos', + taken: 'Tomada', + created: 'Creado', + updated: 'Actualizado', + copied: 'Enlace a la foto copiado', + }, + category: { + camera: 'Cámara', + cameraPlural: 'Cámaras', + cameraTitle: 'Tomada con {{camera}}', + cameraShare: 'Fotos tomadas con {{camera}}', + lens: 'Lente', + lensPlural: 'Lentes', + album: 'Álbum', + albumPlural: 'Álbumes', + tag: 'Etiqueta', + tagPlural: 'Etiquetas', + tagged: 'Etiquetado', + taggedPhotos: 'Fotos etiquetadas', + taggedPhrase: 'Fotos etiquetadas con {{tag}}', + taggedFavs: 'Fotos favoritas', + recipe: 'Receta', + recipePlural: 'Recetas', + recipeShare: 'Fotos de la receta {{recipe}}', + film: 'Película', + filmPlural: 'Películas', + filmShare: 'Fotos tomadas con {{film}}', + focalLength: 'Distancia focal', + focalLengthPlural: 'Distancias focales', + focalLengthTitle: 'Distancia focal de {{focal}}', + focalLengthShare: 'Fotos tomadas a {{focal}}', + year: 'Año', + yearPlural: 'Años', + yearShare: 'Fotos de {{year}}', + yearTitle: 'Fotos tomadas en {{year}}', + recent: 'Reciente', + recentPlural: 'Recientes', + recentTitle: 'Fotos Recientes', + recentSubhead: 'Subido hace {{distance}}', + }, + nav: { + home: 'Inicio', + full: 'Completo', + grid: 'Cuadrícula', + about: 'Sobre', + admin: 'Menú de administrador', + search: 'Buscar', + prev: 'Anterior', + prevShort: 'Ant', + next: 'Siguiente', + nextShort: 'Sig', + }, + about: { + titleDefault: 'Sobre este sitio', + updated: 'Actualizado hace {{distance}}', + photoCount: 'Número de fotos', + firstPhoto: 'Primera foto', + topCamera: 'Cámara principal', + topLens: 'Lente principal', + topRecipe: 'Receta principal', + topFilm: 'Película principal', + recentAlbum: 'Álbum reciente', + popularTag: 'Etiqueta popular', + }, + footer: { + madeWith: 'Hecho con', + }, + sort: { + sort: 'Ordenar', + newest: 'Más recientes', + oldest: 'Más antiguas', + descending: 'Descendente', + ascending: 'Ascendente', + newestFirst: 'Más recientes primero', + oldestFirst: 'Más antiguas primero', + viewNewest: 'Ver más recientes', + viewOldest: 'Ver más antiguas', + takenAt: 'Tomada en', + byTakenAt: 'Por fecha de captura', + uploadedAt: 'Subida en', + byUploadedAt: 'Por fecha de subida', + uploadedAtShort: 'Subida', + color: 'Cromático', + byColor: 'Por color', + clearSort: 'Limpiar orden', + }, + cmdk: { + placeholder: 'Buscar fotos, páginas, ajustes...', + searching: 'Buscando ...', + noResults: 'No se encontraron resultados', + pages: 'Páginas', + }, + tooltip: { + '35mm': 'Equivalente en 35mm', + zoom: 'Aumentar zoom', + recipeInfo: 'Información de la receta', + recipeCopy: 'Copiar texto de la receta', + download: 'Descargar archivo original', + sharePhoto: 'Compartir Foto', + shareCopy: 'Copiar Enlace', + shareTo: 'Compartir en...', + shareX: 'Compartir en X', + shareThreads: 'Compartir en Threads', + shareFacebook: 'Compartir en Facebook', + shareLinkedIn: 'Compartir en LinkedIn', + shareQRCode: 'Alternar Código QR', + }, + theme: { + theme: 'Tema', + system: 'Sistema', + light: 'Modo Claro', + dark: 'Modo Oscuro', + }, + auth: { + signIn: 'Iniciar sesión', + signOut: 'Cerrar sesión', + email: 'Email del administrador', + password: 'Contraseña del administrador', + invalidEmailPassword: 'Email/contraseña no válidos', + }, + admin: { + uploadPhotos: 'Subir fotos', + upload: 'Subir', + uploadPlural: 'Subidas', + uploading: 'Subiendo', + update: 'Actualizar', + updatePlural: 'Actualizaciones', + managePhotos: 'Gestionar fotos', + manageCameras: 'Gestionar cámaras', + manageLenses: 'Gestionar lentes', + manageAlbums: 'Gestionar álbumes', + manageTags: 'Gestionar etiquetas', + manageRecipes: 'Gestionar recetas', + selectPhotos: 'Seleccionar Fotos...', + selectPhotosExit: 'Dejar de Seleccionar', + appInsights: 'Estadísticas de la aplicación', + appConfig: 'Configuración de la aplicación', + edit: 'Editar', + favorite: 'Marcar como favorito', + unfavorite: 'Quitar de favoritos', + private: 'Hacer Privado', + public: 'Hacer Público', + download: 'Descargar', + sync: 'Sincronizar', + syncAutomatic: 'Automático', + syncOverwrite: 'Sobrescribir', + // eslint-disable-next-line max-len + syncOverwriteConfirm: '¿Estás seguro de que quieres sobrescribir todos los campos de la foto? Se pueden perder datos personalizados.', + reupload: 'Volver a subir', + delete: 'Eliminar', + deleteConfirm: '¿Estás seguro de que quieres eliminar "{{photoTitle}}"?', + }, + onboarding: { + setupComplete: '¡Configuración completa!', + setupIncomplete: 'Finalizar configuración', + setupSignIn: 'Inicia sesión para subir fotos', + setupFirstPhoto: 'Añade tu primera foto', + // eslint-disable-next-line max-len + setupConfig: 'Cambia el nombre del sitio y otros ajustes editando las variables de entorno a las que se hace referencia en', + }, + utility: { + more: 'Más', + less: 'Menos', + loadMore: 'Cargar Más', + loading: 'Cargando...', + tryAgain: 'Intentar de Nuevo', + finishing: 'Finalizando...', + uploading: 'Subiendo', + copyPhrase: '{{label}} copiado', + paginate: '{{index}} de {{count}}', + paginateAction: '{{action}} {{index}} de {{count}}', + }, +};