diff --git a/app/controllers/concerns/localized.rb b/app/controllers/concerns/localized.rb
index b43859d9d626be53b13af0a3f93fda55ad5fdd36..d1384ed56ff38f232822a31b83093f3a11435d66 100644
--- a/app/controllers/concerns/localized.rb
+++ b/app/controllers/concerns/localized.rb
@@ -28,18 +28,6 @@ module Localized
   end
 
   def request_locale
-    preferred_locale || compatible_locale
-  end
-
-  def preferred_locale
-    http_accept_language.preferred_language_from(available_locales)
-  end
-
-  def compatible_locale
-    http_accept_language.compatible_language_from(available_locales)
-  end
-
-  def available_locales
-    I18n.available_locales.reverse
+    http_accept_language.language_region_compatible_from(I18n.available_locales)
   end
 end
diff --git a/config/application.rb b/config/application.rb
index d1980cd68116ab0fa525a3bc108a43583542831d..8348649df4c0ffd0bb07e63e3531ce8a73d388fa 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -55,8 +55,8 @@ module Mastodon
       :el,
       :en,
       :eo,
-      :'es-AR',
       :es,
+      :'es-AR',
       :et,
       :eu,
       :fa,
@@ -97,8 +97,8 @@ module Mastodon
       :sk,
       :sl,
       :sq,
-      :'sr-Latn',
       :sr,
+      :'sr-Latn',
       :sv,
       :ta,
       :te,
diff --git a/spec/controllers/concerns/localized_spec.rb b/spec/controllers/concerns/localized_spec.rb
index 7635d10e19f9dc384d2d922e7b731e070dee0f52..a89e24af04bab0e127eb2ebed8fb95c6df35aaa3 100644
--- a/spec/controllers/concerns/localized_spec.rb
+++ b/spec/controllers/concerns/localized_spec.rb
@@ -16,10 +16,16 @@ describe ApplicationController, type: :controller do
   end
 
   shared_examples 'default locale' do
+    it 'sets available and preferred language' do
+      request.headers['Accept-Language'] = 'sr-Latn'
+      get 'success'
+      expect(response.body).to eq 'sr-Latn'
+    end
+
     it 'sets available and preferred language' do
       request.headers['Accept-Language'] = 'ca-ES, fa'
       get 'success'
-      expect(response.body).to eq 'fa'
+      expect(response.body).to eq 'ca'
     end
 
     it 'sets available and compatible language if none of available languages are preferred' do