diff --git a/app/assets/javascripts/components/containers/mastodon.jsx b/app/assets/javascripts/components/containers/mastodon.jsx
index e61107cd1a18eb91e0f666aaeff6ede5b968e5ba..b2c978ee86db875c398420c3a0394d7a46986e1a 100644
--- a/app/assets/javascripts/components/containers/mastodon.jsx
+++ b/app/assets/javascripts/components/containers/mastodon.jsx
@@ -35,6 +35,7 @@ import HashtagTimeline from '../features/hashtag_timeline';
 import { IntlProvider, addLocaleData } from 'react-intl';
 import en from 'react-intl/locale-data/en';
 import de from 'react-intl/locale-data/de';
+import es from 'react-intl/locale-data/es';
 import getMessagesForLocale from '../locales';
 
 const store = configureStore();
@@ -43,7 +44,7 @@ const browserHistory = useRouterHistory(createBrowserHistory)({
   basename: '/web'
 });
 
-addLocaleData([...en, ...de]);
+addLocaleData([...en, ...de, ...es]);
 
 const Mastodon = React.createClass({
 
diff --git a/app/assets/javascripts/components/locales/es.jsx b/app/assets/javascripts/components/locales/es.jsx
index 545c4a0ae559083cf7e89e8bb90b91de059943d7..c58c4bdc8a4a7e3c9748aa6c3ef916f39bb111bb 100644
--- a/app/assets/javascripts/components/locales/es.jsx
+++ b/app/assets/javascripts/components/locales/es.jsx
@@ -26,7 +26,7 @@ const es = {
   "getting_started.about_developer": "Puedes seguir al desarrollador de este proyecto en Gargron@mastodon.social",
   "column.home": "Inicio",
   "column.mentions": "Menciones",
-  "column.public": "Público",
+  "column.public": "Historia pública",
   "tabs_bar.compose": "Redactar",
   "tabs_bar.home": "Inicio",
   "tabs_bar.mentions": "Menciones",
@@ -34,7 +34,7 @@ const es = {
   "compose_form.placeholder": "¿En qué estás pensando?",
   "compose_form.publish": "Publicar",
   "navigation_bar.settings": "Ajustes",
-  "navigation_bar.public_timeline": "Línea de tiempo pública",
+  "navigation_bar.public_timeline": "Público",
   "navigation_bar.logout": "Cerrar sesión",
   "reply_indicator.cancel": "Cancelar",
   "search.placeholder": "Buscar",
diff --git a/app/assets/javascripts/components/locales/index.jsx b/app/assets/javascripts/components/locales/index.jsx
index 212cbcee5a89160877c2028ece17d992c001a127..7fb43dd33c2af6f0673d0864d7090f863d08f8d4 100644
--- a/app/assets/javascripts/components/locales/index.jsx
+++ b/app/assets/javascripts/components/locales/index.jsx
@@ -1,9 +1,11 @@
 import en from './en';
 import de from './de';
+import es from './es';
 
 const locales = {
   en,
-  de
+  de,
+  es
 };
 
 export default function getMessagesForLocale (locale) {
diff --git a/config/application.rb b/config/application.rb
index 114de57fb511f7e9e8143df945aff60cd667ee3d..d62c7e83e18aecdf4244effa41a17a7ab8a72ad7 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -20,7 +20,7 @@ module Mastodon
 
     # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
     # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
-    config.i18n.available_locales = [:en, :de]
+    config.i18n.available_locales = [:en, :de, :es]
     config.i18n.default_locale    = :en
 
     # config.paths.add File.join('app', 'api'), glob: File.join('**', '*.rb')
diff --git a/config/locales/devise.es.yml b/config/locales/devise.es.yml
index d10eb08fcf3fc65aa719dfeac7b46786df054046..634a5e97f6091660b7c2d9b35072253c45d13e58 100644
--- a/config/locales/devise.es.yml
+++ b/config/locales/devise.es.yml
@@ -1,5 +1,5 @@
 ---
-en:
+es:
   devise:
     confirmations:
       confirmed: Su dirección de correo ha sido confirmada con éxito.
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 16be99a53172b5fd28b063bc2b6b005779d624ac..2e0adb7428e5e278f5436e41f38e993845fe3351 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -1,5 +1,5 @@
 ---
-en:
+es:
   about:
     about_instance: "<em>%{instance}</em> es una instancia de Mastodon."
     about_mastodon: Mastodon es un servidor de red social <em>libre y de código abierto</em>. Una alternativa <em>descentralizada</em> a plataformas comerciales, que evita el riesgo de que una única compañía monopolice tu comunicación. Cualquiera puede ejecutar Mastodon y participar sin problemas en la <em>red social</em>.