diff --git a/resources/i18n/es.json b/resources/i18n/es.json
new file mode 100644
index 000000000..104fd5029
--- /dev/null
+++ b/resources/i18n/es.json
@@ -0,0 +1,304 @@
+{
+    "languageName": "Español",
+    "resources": {
+        "song": {
+            "name": "Canción ||||  Canciones",
+            "fields": {
+                "albumArtist": "Artista del Álbum",
+                "duration": "Duración",
+                "trackNumber": "#",
+                "playCount": "Reproducciones",
+                "title": "Título",
+                "artist": "Artista",
+                "album": "Álbum",
+                "path": "Ruta del archivo",
+                "genre": "Género",
+                "compilation": "Compilación",
+                "year": "Año",
+                "size": "Tamaño del archivo",
+                "updatedAt": "Actualizado el",
+                "bitRate": "Tasa de bits",
+                "discSubtitle": "Subtítulo del Disco",
+                "starred": "Favorito"
+            },
+            "actions": {
+                "addToQueue": "Reproducir Después",
+                "playNow": "Reproducir Ahora",
+                "addToPlaylist": "Agregar a la lista de reproducción",
+                "shuffleAll": "Todas Aleatorias",
+                "download": "Descarga"
+            }
+        },
+        "album": {
+            "name": "Álbum |||| Álbumes",
+            "fields": {
+                "albumArtist": "Artista del Álbum",
+                "artist": "Artista",
+                "duration": "Duración",
+                "songCount": "Canciones",
+                "playCount": "Reproducciones",
+                "name": "Nombre",
+                "genre": "Género",
+                "compilation": "Compilación",
+                "year": "Año",
+                "updatedAt": "Actualizado el"
+            },
+            "actions": {
+                "playAll": "Reproducir",
+                "playNext": "Reproducir Siguiente",
+                "addToQueue": "Reproducir Después",
+                "shuffle": "Aletorio",
+                "addToPlaylist": "Agregar a la lista",
+                "download": "Descargar"
+            },
+            "lists": {
+                "all": "Todos",
+                "random": "Aleatorio",
+                "recentlyAdded": "Recientes",
+                "recentlyPlayed": "Recientes",
+                "mostPlayed": "Más Reproducidos",
+                "starred": "Favoritos"
+            }
+        },
+        "artist": {
+            "name": "Artista |||| Artistas",
+            "fields": {
+                "name": "Nombre",
+                "albumCount": "Número de álbumes",
+                "songCount": "Número de canciones",
+                "playCount": "Reproducciones"
+            }
+        },
+        "user": {
+            "name": "Usuario |||| Usuarios",
+            "fields": {
+                "userName": "Nombre de usuario",
+                "isAdmin": "Es Administrador",
+                "lastLoginAt": "Último Acceso el",
+                "updatedAt": "Actualizado el",
+                "name": "Nombre",
+                "password": "Contraseña",
+                "createdAt": "Creado el"
+            }
+        },
+        "player": {
+            "name": "Reproductor |||| Reproductores",
+            "fields": {
+                "name": "Nombre",
+                "transcodingId": "Transcodificación",
+                "maxBitRate": "Tasa de bits Máx.",
+                "client": "Cliente",
+                "userName": "Usuario",
+                "lastSeen": "Última conexión"
+            }
+        },
+        "transcoding": {
+            "name": "Transcodificación |||| Transcodificaciones",
+            "fields": {
+                "name": "Nombre",
+                "targetFormat": "Formato de destino",
+                "defaultBitRate": "Tasa de bits default",
+                "command": "Comando"
+            }
+        },
+        "playlist": {
+            "name": "Lista |||| Listas",
+            "fields": {
+                "name": "Nombre",
+                "duration": "Duración",
+                "owner": "Dueño",
+                "public": "Público",
+                "updatedAt": "Actualizado el",
+                "createdAt": "Creado el",
+                "songCount": "Canciones",
+                "comment": "Comentario",
+                "sync": "Auto-importados",
+                "path": "Importados de"
+            },
+            "actions": {
+                "selectPlaylist": "Seleccione una lista:",
+                "addNewPlaylist": "Creada \"%{name}\"",
+                "export": "Exportar"
+            }
+        }
+    },
+    "ra": {
+        "auth": {
+            "welcome1": "¡Gracias por instalar Navidrome!",
+            "welcome2": "Para empezar, crea un usuario administrador",
+            "confirmPassword": "Confirme la Contraseña",
+            "buttonCreateAdmin": "Crear Admin",
+            "auth_check_error": "Por favor inicie sesión para continuar",
+            "user_menu": "Perfil",
+            "username": "Usuario",
+            "password": "Contraseña",
+            "sign_in": "Acceder",
+            "sign_in_error": "La autenticación falló, por favor, vuelva a intentarlo",
+            "logout": "Cerrar Sesión"
+        },
+        "validation": {
+            "invalidChars": "Por favor use solo letras y números",
+            "passwordDoesNotMatch": "La contraseña no coincide",
+            "required": "Requerido",
+            "minLength": "Debe contener %{min} caracteres al menos",
+            "maxLength": "Debe contener %{max} caracteres o menos",
+            "minValue": "Debe ser al menos %{min}",
+            "maxValue": "Debe ser %{max} o menos",
+            "number": "Debe ser un número",
+            "email": "Debe ser un correo electrónico válido",
+            "oneOf": "Debe ser uno de: %{options}",
+            "regex": "Debe coincidir con un formato específico (regexp): %{pattern}"
+        },
+        "action": {
+            "add_filter": "Añadir filtro",
+            "add": "Añadir",
+            "back": "Ir Atrás",
+            "bulk_actions": "1 elemento seleccionado |||| %{smart_count} elementos selecccionados",
+            "cancel": "Cancelar",
+            "clear_input_value": "Limpiar valor",
+            "clone": "Duplicar",
+            "confirm": "Confirmar",
+            "create": "Crear",
+            "delete": "Eliminar",
+            "edit": "Editar",
+            "export": "Exportar",
+            "list": "Lista",
+            "refresh": "Refrescar",
+            "remove_filter": "Eliminar este filtro",
+            "remove": "Eliminar",
+            "save": "Guardar",
+            "search": "Buscar",
+            "show": "Mostrar",
+            "sort": "Ordenar",
+            "undo": "Deshacer",
+            "expand": "Expandir",
+            "close": "Cerrar",
+            "open_menu": "Abrir menú",
+            "close_menu": "Cerrar menú",
+            "unselect": "Deseleccionado"
+        },
+        "boolean": {
+            "true": "Sí",
+            "false": "No"
+        },
+        "page": {
+            "create": "Crear %{name}",
+            "dashboard": "Tablero",
+            "edit": "%{name} #%{id}",
+            "error": "Algo salió mal",
+            "list": "\n%{name}",
+            "loading": "Cargando",
+            "not_found": "No encontrado",
+            "show": "%{name} #%{id}",
+            "empty": "Sin %{name} todavía.",
+            "invite": "¿Quiere agregar una?"
+        },
+        "input": {
+            "file": {
+                "upload_several": "Arrastre algunos archivos para subir, o haga clic para seleccionar uno.",
+                "upload_single": "Arrastre un archivo para subir, o haga clic para seleccionarlo."
+            },
+            "image": {
+                "upload_several": "Arrastre algunas imagénes para subir, o haga clic para seleccionar una.",
+                "upload_single": "Arrastre alguna imagen para subir, o haga clic para seleccionarla."
+            },
+            "references": {
+                "all_missing": "No se pueden encontrar datos de referencias.",
+                "many_missing": "Al menos una de las referencias asociadas parece no estar disponible.",
+                "single_missing": "La referencia asociada no parece estar disponible."
+            },
+            "password": {
+                "toggle_visible": "Ocultar contraseña",
+                "toggle_hidden": "Mostrar contraseña"
+            }
+        },
+        "message": {
+            "about": "Acerca de",
+            "are_you_sure": "¿Está seguro?",
+            "bulk_delete_content": "¿Seguro que quiere eliminar este %{name}? |||| ¿Seguro que quiere eliminar estos %{smart_count} elementos?",
+            "bulk_delete_title": "Eliminar %{name} |||| Eliminar %{smart_count} %{name}",
+            "delete_content": "¿Seguro que quiere eliminar este elemento?",
+            "delete_title": "Eliminar %{name} #%{id}",
+            "details": "Detalles",
+            "error": "Se produjo un error en el cliente y su solicitud no se pudo completar",
+            "invalid_form": "El formulario no es válido. Por favor verifique si hay errores",
+            "loading": "La página se está cargando, espere un momento por favor",
+            "no": "No",
+            "not_found": "O bien escribió una URL incorrecta, o siguió un enlace incorrecto.",
+            "yes": "Sí",
+            "unsaved_changes": "Algunos de sus cambios no se guardaron. ¿Está seguro que quiere ignorarlos?"
+        },
+        "navigation": {
+            "no_results": "No se han encontrado resultados",
+            "no_more_results": "El número de página %{page} está fuera de los límites. Pruebe la página anterior.",
+            "page_out_of_boundaries": "Número de página %{page} fuera de los límites",
+            "page_out_from_end": "No puede avanzar después de la última página",
+            "page_out_from_begin": "No puede ir antes de la página 1",
+            "page_range_info": "%{offsetBegin}-%{offsetEnd} de %{total}",
+            "page_rows_per_page": "Filas por página:",
+            "next": "Siguiente",
+            "prev": "Anterior"
+        },
+        "notification": {
+            "updated": "Elemento actualizado |||| %{smart_count} elementos actualizados",
+            "created": "Elemento creado",
+            "deleted": "Elemento eliminado |||| %{smart_count} elementos eliminados.",
+            "bad_item": "Elemento incorrecto",
+            "item_doesnt_exist": "El elemento no existe",
+            "http_error": "Error de comunicación con el servidor",
+            "data_provider_error": "Error del proveedor de datos. Consulte la consola para más detalles.",
+            "i18n_error": "No se pudieron cargar las traducciones para el idioma especificado",
+            "canceled": "Acción cancelada",
+            "logged_out": "Su sesión ha finalizado, vuelva a conectarse."
+        }
+    },
+    "message": {
+        "note": "NOTA",
+        "transcodingDisabled": "Cambiar la configuración de la transcodificación a través de la interfaz web esta deshabilitado por motivos de seguridad. Si quieres cambiar (editar o agregar) opciones de transcodificación, reinicia el servidor con la %{config} opción de configuración.",
+        "transcodingEnabled": "Navidrom se esta ejecutando con %{config}, lo que hace posible ejecutar comandos de sistema desde el apartado de transcodificación en la interfaz web. Recomendamos deshabilitarlo por motivos de seguridad y solo habilitarlo cuando se este configurando opciones de transcodificación.",
+        "songsAddedToPlaylist": "1 canción agregada a la lista |||| %{smart_count} canciones agregadas a la lista",
+        "noPlaylistsAvailable": "Ninguna lista disponible",
+        "delete_user_title": "Eliminar usuario '%{name}'",
+        "delete_user_content": "¿Esta seguro de eliminar a este usuario y todos sus datos (incluyendo listas y preferencias)?"
+    },
+    "menu": {
+        "library": "Biblioteca",
+        "settings": "Ajustes",
+        "version": "Versión %{version}",
+        "theme": "Tema",
+        "personal": {
+            "name": "Personal",
+            "options": {
+                "theme": "Tema",
+                "language": "Idioma",
+                "defaultView": "Vista por defecto"
+            }
+        },
+        "albumList": "Álbumes"
+    },
+    "player": {
+        "playListsText": "Lista de Reproducción",
+        "openText": "Abrir",
+        "closeText": "Cerrar",
+        "notContentText": "Sin música",
+        "clickToPlayText": "Clic para reproducir",
+        "clickToPauseText": "Clic para pausar",
+        "nextTrackText": "Pista Siguiente",
+        "previousTrackText": "Pista previa",
+        "reloadText": "Refrescar",
+        "volumeText": "Volumen",
+        "toggleLyricText": "Mostrar letras",
+        "toggleMiniModeText": "Minimizar",
+        "destroyText": "Destruir",
+        "downloadText": "Descargar",
+        "removeAudioListsText": "Eliminar listas de audio",
+        "clickToDeleteText": "Clic para eliminar %{name}",
+        "emptyLyricText": "Sin letras",
+        "playModeText": {
+            "order": "En orden",
+            "orderLoop": "Repetir",
+            "singleLoop": "Repetir Una",
+            "shufflePlay": "Aleatorio"
+        }
+    }
+}
\ No newline at end of file